My Blog: projects, sketches, works in progress, thoughts, and inspiration.

Tagged: 3d

I cracked open the old Processing Particle System again and tried something a little bit different.

Beginning with particles moving through a Perlin Flow Field I moved them into 3d. Since my particle system is built on the PVector class, adding the third dimension was a simple matter of adding a third parameter to every call to a new PVector and adding either the P3D or OpenGL (used for all the images here) rendering engine. An extra force pushes the particles up through space an array stores the previous locations for each particle. As particles die an instance of another object is created, exclusively for storing and rendering these paths.

Another addition causes the growing strands to bud. The budded particles inherit the properties from the parent. Changing the forces between particles, the branching rate, and the environmental properties creates many different structures.

Processing Particle Generated Tree

Processing Particle Generated Tree

As the script runs, a cloud of particles drifts up through space leaving behind a colorful twisted shrubbery. Using the mouse and keyboard the camera can be moved around the structure while it generates itself.

Read On »

Read On (Post Continues) »

perlin noise flow field particle system 3151

Perlin noise is a pseudo-random gradient texture, developed by Ken Perlin beginning with his work on the 1982 movie Tron. It continues to be a great tool to create textures and dynamic elements. The function generates a continuous string of values in any number of dimensions. Although it was initially developed to build textures it can be very useful for many other things such as particle motion. Noise is generated by a series oscillations over a variety of frequencies, similar to an audio signal.

Processing supports Perlin noise in up to three dimensions and can be implemented by calling the noise function with the parameters for the coordinate. I’ve been playing with using Three dimensional noise to create an animated force field or flow field in which particles move and thought I’d build a little tutorial to demonstrate some useful applications.

Read On »

Read On (Post Continues) »

3d sound form

Working in 3d in Processing is all well and good but does have it’s limits in terms of rendering. To get a better rendering of three dimensional forms created with Processing it’s possible to export them to a file that a 3d modeling program can read. From my experience, the exported file isn’t perfect, but with a little work it can be turned into a nice model. A Processing script generated a 3d grid based on sound, the three axes representing amplitude, frequency, and time. Using the DXF library, I exported the model.

This raw data is a little bulky and has a few issues. All the segments of the form were separate objects. After importing the script into Blender (a free 3d modeling and animation program) I selected all the objects, joined them, and then in edit mode removed doubles. This combines all the meshes if they are lined up. Then using the ‘make faces’ on auto will fill in all triangles and quads. The image above was also extruded to give it some form and has a subsurface modifier for a smoother look.

Post Page »

This is the same script as my last video. Each particle on the sphere has a curve drawn to all nearby particles with an extra point in the middle scaled toward the center. This creates a spike at each point. Again the height is determined by the density of particles in a particular area on the sphere. The script uses the OpenGL 3d environment and the video library to capture the rendering. The OpenGL library has some issues working with the video library but renders many layers of transparent objects better.

Read On »

Read On (Post Continues) »

This Processing script generates a randomized particle system over a sphere. I’ve been playing around with it for a few days and, although the script has gotten a little messy, I’ve come up with a few interesting things. Each particle is generated from two random rotations and a set radius and contains a second point based on another radius. Initially I was using these points to create curves radiating from each particle, but got a little distracted. In this video the second radius of each point is dynamically calculated based on the density of particles it’s proximity. Lines are drawn between nearby points to create the web effect.

Post Page »


This is another script working with 3d l-systems but renders them quite differently. The 3d structure is translated onto a two dimensional plane and then a vertical line draws up to each point. The numbers represent the index number of each object within the code structure. The script uses the P3D library as it renders a little faster and the more advanced rendering of OpenGL is not needed.

Post Page »