Free and open-source computer-aided design/print
Intro
One of the core components necessary for open collaborative design to truly take flight is an advanced free and open-source computer-aided design (CAD) program to allow anyone to easily generate new designs or customise existing ones. The program should include a special browser to enable finding and importing open-source components and machines from the 'universal commons' as well as analytical tools and 'physics engine' which allow a significant amount of simulation and testing to be done 'virtually', saving significant amounts of time when it comes to construction.
The availability of user-friendly open source CAD software will be essential to allow the widest number of people to engage in this creative activity, which should help create a more diverse ecosystem of objects, machines and solutions. There is no reason, with thoughtful implementation, why this software shouldn't be intuitive enough for children to use easily. It could explain mechanical and engineering principles along the way if the user wished, and also be a place to store detailed contextual development notes, wiki style, to help others understand the workings and decisions made.
The virtual nature of the designs mean that far-flung people via the internet can easily work together on the same design, either working individually on various sub-assemblies of the whole or collaborating directly on the same part. The restrictions of having to finding people local to yourself with similar interests and desires becomes much less of an issue.
Contents
Creating an advanced open-source CAD application
There needs to be an effort to create a high quality open-source CAD program with capabilities matching those of high-end commercial CAD packages. This is key to opening up the full potential of open collaborative design.
There should be serious effort put in to making the application as intuitive as possible from the outset for people who are new to 3D design, by giving them a simplified user-interface, built-in tutorials, animated overviews and access to a wiki-compiled handbook. It is very important not to put users off while taking their first exploratory steps, as it is easily done. The more people that take part in open collaborative design, the richer the 'universal commons' will be for all.
Picking from the universal commons
Easy access to tagged and categorised parts, assemblies and whole machines from an indexed 'copylefted' 'universal commons' through a browser panel built-in to the CAD program. This should make it easy to create a starting point for a new project by re-using bits and pieces that other people have already made. Most of the effort of a new project can then go towards creating new parts and evolving the concept, rather than duplicating the effort others have already done.
Commercial components
Proprietary off-the-shelf components and assemblies could be browsed and incorporated into the user's model too, although they would not be part of the freely available universal commons. It might be that these items just show the external envelope of the part, it's interfaces, connections, mass and volume, but not commercially sensitive internal details.
Collaborative features
- Text, audio comments and recorded model manipulation can be attached to a part to explain the function, concept or decision relating to it.
- Wiki-type features relating to all changes to part or its meta-data. Meaning: Log of all changes to the part (and by who) giving an unlimited 'undo' history. This applies to comments and notes too.
- Shared sessions with Voice over IP and multiple pointer representation. Meaning: multiple users can look at the same model, talk to each other and point and select things on the model at the same time.
- Distributed revision control allowing and encourage massive parallel development with visual 'diffing' and merging capability
Universal artefact commons
With many people contributing to open design projects, as happens currently with software, a universal commons will emerge made up of vast libraries of designs for everything from components and sub-assemblies through to complete artefacts, machines and complex systems, available for anyone to download and incorporate into their own designs, or help evolve as part of a wider project.As in software, it would be useful for components and assemblies to be as 're-usable' as possible in the sense of being able to be incorporated in many different machine designs. To aid this it should be possible to specify the vital dynamic functions of a component or assembly in the CAD software, so that it can easily be modified in shape and scale so it can be incorporated into a new design while ensuring it still works correctly.
This will enable a huge reduction in duplication of effort and allow people to focus their efforts on creating new machines of increasing complexity and building on the work of others.
One interesting side-effect of open collaboration is that it tends to lead to highly modular design. FireFox and Linux are examples of this. Modularity also leads to a high degree of reusability; someone designing a new piece of hardware or software can pick-and-mix parts of existing projects. This works well in software, but may have to be abstracted somewhat to work in physical systems where dimensions are obviously important to fit with other components.
Virtual environments for scenario modelling
This feature enables a virtual 'location' to be selected (or created) in order to show an item in context in its intended environment. Other people could even be invited to gather in this virtual space to see demonstrations of a machine for example.
This kind of scenario modelling might be similar to the way 3D computer games are rendered in real-time. It is a similar concept to machinima which use 3D computer game environments and their characters to speedily create animated films on a normal computer, or a virtual world such as Second Life . Open Cobalt, under development by Mark McCahill, Alan Kay and others, is an open-source virtual world. As of May 2010, a provisional version is available for download here.
However with off-line rendering over longer periods, these animations could be of superior quality and realism – and perhaps not much longer if idle computers on the same network could be commandeered to create an ad-hoc peer-to-peer render farm.
Aside from creating physical designs, this is also an incredibly easy and powerful way to create illustrative images or animations for their own sake. With environments quick to select and artefacts easily plucked from the commons, with any moveable parts set to particular positions, it would be an incredibly quick way to put together a high quality image. Almost photo-realistic images could be created as easily as creating a diagram.
Simulation and analysis
Modules for analysing and testing how objects should behave in the real world.
- Finite element analysis - for detailed analysis of effects such as stress, strain, thermal transfer and electromagnetism
- Computational fluid dynamics
- Physics engine - for more simplistic but 'realtime' simulation and user interaction, such as gravity, friction and collision detection
- Kinematics - models motion of moving parts
- Dynamics - models motion and forces of moving parts