Post by Frisbone on Nov 16, 2013 9:41:58 GMT -5
This list is not in order of importance. I list all the activity areas I can think of that are or will be important to the development of this project. Anyone who is interested in contributing but unsure how you fit in - have a look at this list to see if anything looks up your alley:
Software Development
Aside from development of the firmware that processes the input signals and converts them to controller signals there are other areas such as device configuration (either by appliance-style web page, or by external application, or mobile device) and even console integration for games that might want to make enhanced use of the controller. The developer will be in the middle of everything trying to make it work.
Development Tools/Web Collaboration
Improving how we exchange ideas and work products can have a significant effect on progress. Making use of existing tools, development of custom tools (e.g. photo, video, file, software sharing) also includes things like bug tracking, todo lists, wiki's, etc. Lots out there to choose from - and places like sourceforge and bitbucket that put multiple tools together.
Migration and Project Planning
This could be a large area of activity where we try to put all the individual ideas together in a logical order of progression and combining to identify revisions and/or branches from previous designs. A migration plan is needed to document where we've come from and where we are headed in order to get everyone on the same page and for outsiders to see the big picture.
Controller Construction
Good area for people who just like to hack, tinker, and build things. This would be the physical modification or creation of components that house the electronics and mount them.
Testing
Anyone that has a relatively high attention to detail and some level of tenacity can test and you don't need to be a HW or SW person to do it. There is always something to test and the results provide feedback that is invaluable.
Math Model
This project was conceived on the notion that you could track the relative position of an object using a single accelerometer with a high enough accuracy to use it to calculate movement about an axis (that axis being the center of a person holding the controller). It is imperative that we understand the accuracy limitations we have and what the expected precision should be based on sampling rates and other assumptions about the environment. This activity also includes providing the SW people with a concrete step by step application of efficient math algorithms that can be used to a) plot new positions, and b) calculate ascension/declination changes in spherical coordinate fashion.
Profiling Sensitivity curves for games
Many games provide the ability to adjust the sensitivity level of the "Free look" feature of the game (how much the screen moves depending on how far over you move your joystick in a particular direction). The mapping of the position of the joystick to the rate of movement about the axis can be used to profile these curves and then to predict how our software can emulate a particular motion based on physical movement of the accelerometer. So this activity is similar to testing, but it is used as input to the Math folks who will derive forumulas and coefficients that the SW people will eventually use and build into tables.
Calibration approach
Calibration is the process of limiting any errors inherent in the components utilized (like the accelerometer) and assumptions made about the starting position of the controller. The process needs to be designed and implemented in such a way that it is easy for the user yet assures that minimal manual corrections need to be made over a gaming session.
Manual adjustment approach
There is no doubt that at some point in time that the game thinks you are looking up when in fact you are looking straight ahead. No matter how fast we sample we will have precision errors that will lead to this eventually. An intuitive way to correct for this naturally is imperative. As an example, lets say there is a special button you press that tells the device to "ignore the accelerometer" when pressed. So as you hold it down and move the controller, the screen you are watching doesn'[t change and you can move it into the actual position shown. When you let up on it, it allows you to resume naturally. Just one possibility - need additional options.
BOM - Improving the economics
This is the process of looking at the parts list for future revisions and providing feedback into the planning process about what parts or development approach allows these controllers to be built at the most affordable price. Emphasizing printed parts is obviously big - but also using mass produced parts and choosing only what you need for a particular function can also save. Someone with knowledge of microelectronics would be good with this activity.
Electronic Design and Component Migration plan
Whether we use a Raspberry Pi, an Arduino, or other MC or combination of several is what this activity is all about. Closely tied to the BOM/Economics category - but person should have some software knowledge to understand the impact of their suggestions on future software updates.
PCB Design
We are looking at designing our own PCBs to combine multiple functions and to reduce the area we occupy within the controller. With Rev3 we are considering a custom PCB to house a couple Microsoft MCs from the Xbox controller to minimize the effort in cannibalizing them.
3D Modeling
Someone with experience with 3D modeling programs is needed to produce parts for an AR15 for use with future revs. Individual parts need to be small enough to be printed on a 200mm X 200mm platform and fit together easily while having reinforced sides and mounting holes for various components. Will work closely with those doing 3D printing.
3D Printing
3D modeled parts will need to be sliced and printed and then distributed to project engineers assembling their prototypes. Much back and forth with the 3D modeler is anticipated.
Ergonomics
Understanding how the controller might be used is very important to getting physical designs right. Getting good input early in the process is vital. Location of buttons and choosing the right kind(s) of guns to model are example activities in this area.
Community Growth and Promotion
This is not a small undertaking and our goal is to create a hobbyist community around this much like that of 3D Printing - but for gamers that are also hackers/hobbyists. Getting as many talented people involved as possible can only make things better and our goal is to grow the pool of contributors. However, we are also interested in encouraging people that contribute to spin off efforts to commercially benefit from various aspects of the project. Our goal is to help make immersive VR for 1st person gaming a reality - not necessarily to profit from it.
Crowd Funding
We've seen other similar crowd funded efforts raise a lot of money and it is conceivable that we could help fund the acquisition of HW and certain individual contributions through a crowd funded effort. We need people to be looking at how we would structure one with maximum appeal and how to run it so we stay legitimately within the open source community.
Software Development
Aside from development of the firmware that processes the input signals and converts them to controller signals there are other areas such as device configuration (either by appliance-style web page, or by external application, or mobile device) and even console integration for games that might want to make enhanced use of the controller. The developer will be in the middle of everything trying to make it work.
Development Tools/Web Collaboration
Improving how we exchange ideas and work products can have a significant effect on progress. Making use of existing tools, development of custom tools (e.g. photo, video, file, software sharing) also includes things like bug tracking, todo lists, wiki's, etc. Lots out there to choose from - and places like sourceforge and bitbucket that put multiple tools together.
Migration and Project Planning
This could be a large area of activity where we try to put all the individual ideas together in a logical order of progression and combining to identify revisions and/or branches from previous designs. A migration plan is needed to document where we've come from and where we are headed in order to get everyone on the same page and for outsiders to see the big picture.
Controller Construction
Good area for people who just like to hack, tinker, and build things. This would be the physical modification or creation of components that house the electronics and mount them.
Testing
Anyone that has a relatively high attention to detail and some level of tenacity can test and you don't need to be a HW or SW person to do it. There is always something to test and the results provide feedback that is invaluable.
Math Model
This project was conceived on the notion that you could track the relative position of an object using a single accelerometer with a high enough accuracy to use it to calculate movement about an axis (that axis being the center of a person holding the controller). It is imperative that we understand the accuracy limitations we have and what the expected precision should be based on sampling rates and other assumptions about the environment. This activity also includes providing the SW people with a concrete step by step application of efficient math algorithms that can be used to a) plot new positions, and b) calculate ascension/declination changes in spherical coordinate fashion.
Profiling Sensitivity curves for games
Many games provide the ability to adjust the sensitivity level of the "Free look" feature of the game (how much the screen moves depending on how far over you move your joystick in a particular direction). The mapping of the position of the joystick to the rate of movement about the axis can be used to profile these curves and then to predict how our software can emulate a particular motion based on physical movement of the accelerometer. So this activity is similar to testing, but it is used as input to the Math folks who will derive forumulas and coefficients that the SW people will eventually use and build into tables.
Calibration approach
Calibration is the process of limiting any errors inherent in the components utilized (like the accelerometer) and assumptions made about the starting position of the controller. The process needs to be designed and implemented in such a way that it is easy for the user yet assures that minimal manual corrections need to be made over a gaming session.
Manual adjustment approach
There is no doubt that at some point in time that the game thinks you are looking up when in fact you are looking straight ahead. No matter how fast we sample we will have precision errors that will lead to this eventually. An intuitive way to correct for this naturally is imperative. As an example, lets say there is a special button you press that tells the device to "ignore the accelerometer" when pressed. So as you hold it down and move the controller, the screen you are watching doesn'[t change and you can move it into the actual position shown. When you let up on it, it allows you to resume naturally. Just one possibility - need additional options.
BOM - Improving the economics
This is the process of looking at the parts list for future revisions and providing feedback into the planning process about what parts or development approach allows these controllers to be built at the most affordable price. Emphasizing printed parts is obviously big - but also using mass produced parts and choosing only what you need for a particular function can also save. Someone with knowledge of microelectronics would be good with this activity.
Electronic Design and Component Migration plan
Whether we use a Raspberry Pi, an Arduino, or other MC or combination of several is what this activity is all about. Closely tied to the BOM/Economics category - but person should have some software knowledge to understand the impact of their suggestions on future software updates.
PCB Design
We are looking at designing our own PCBs to combine multiple functions and to reduce the area we occupy within the controller. With Rev3 we are considering a custom PCB to house a couple Microsoft MCs from the Xbox controller to minimize the effort in cannibalizing them.
3D Modeling
Someone with experience with 3D modeling programs is needed to produce parts for an AR15 for use with future revs. Individual parts need to be small enough to be printed on a 200mm X 200mm platform and fit together easily while having reinforced sides and mounting holes for various components. Will work closely with those doing 3D printing.
3D Printing
3D modeled parts will need to be sliced and printed and then distributed to project engineers assembling their prototypes. Much back and forth with the 3D modeler is anticipated.
Ergonomics
Understanding how the controller might be used is very important to getting physical designs right. Getting good input early in the process is vital. Location of buttons and choosing the right kind(s) of guns to model are example activities in this area.
Community Growth and Promotion
This is not a small undertaking and our goal is to create a hobbyist community around this much like that of 3D Printing - but for gamers that are also hackers/hobbyists. Getting as many talented people involved as possible can only make things better and our goal is to grow the pool of contributors. However, we are also interested in encouraging people that contribute to spin off efforts to commercially benefit from various aspects of the project. Our goal is to help make immersive VR for 1st person gaming a reality - not necessarily to profit from it.
Crowd Funding
We've seen other similar crowd funded efforts raise a lot of money and it is conceivable that we could help fund the acquisition of HW and certain individual contributions through a crowd funded effort. We need people to be looking at how we would structure one with maximum appeal and how to run it so we stay legitimately within the open source community.