One of my favourite childhood toys was Vero Construc which helped me to develop a big interest in building little (often pointless) mechanical contraptions. I’m still having a few salvaged parts of it at home which I passed on to the kids to play with, though it’s having a hard time to compete with the more “modern” toys & gadgets.
So over the holidays I’ve been doing some research about kinetic & mechanical art and then started working on some additions to various classes in the core and physics packages. These in turn needed testing and inspired me to create the little New Year’s greetings below:
Amongst other things the new additions include:
- ParticleString class to automatically connect a list of particles with springs or create a string of particles along a line/ray
- ParticlePath is extending Spline2D/3D and can turn the spline into a ParticleString sampled at an uniform interval
- New ParticleContstraint implementations and improvements to existing ones:
- AxisConstraint locks movement of a single axis
- PlaneConstraint locks movement in a plane (only 1 axis left to move in freely)
- CylinderConstraint creates a cylindrical obstacle in the simulation space
- BoxConstraint turns an axis-aligned box (AABB) into an obstacle
- SoftBoxConstraint uses an AABB as perimeter and slowly forces particles towards its centroid coordinates (per axis)
- Reworked (corrected) velocity handling and accessors for contraints to manipulate particle velocities upon collision
Even though these updates are not yet part of a new release, you can download the source code (as complete Eclipse project incl. compiled versions of the pre-release libraries) and interactive realtime versions for OSX & Windows from here:
To get the project into Eclipse, simply use the Import wizard:
File > Import… > Existing projects into workspace > Next > Select archive file > Choose the downloaded zip > Finish
Apart from the showing how to use these new classes mentioned above, Processing heads might also be interested in the elegance of XML parsing using JAXB (one of my favourite additions to Java 6). Last but not least, the project is also utilizing the custom vector shape alphabet system originally developed for the onedotzero festival identity last year.
Happy 2010 everyone!