Diffusion Aggregation

Uploaded image

Particles drift until they collide with the growing form. To make this printer-friendly I constrain the drift and the acceptable collisions.

The clusters formed in the processes are referred to as Brownian trees. These clusters are an example of a fractal. wikipedia

I'm working in a medium where one sculpts material indirectly. I regularly sketch people and computers in diagrams that explain my work. I carried the aesthetic I had developed there as inspiration for my first printed sculpture. See Solid Programmers

Now I will step back one more level of indirection by writing rules that will guide a process that makes biologically inspired sculptures. Here is the code I wrote over morning coffee. It worked well enough that I considered staying home from work for the rest of the day.

def step if rand() < 0.6 @x += rand()-rand() @y += rand()-rand() else @z -= rand() end end def walk @x,@y,@z = [0,0,100] while @z > 1 step break if bump end end def bump @form.each do |x,y,z| return true if (@x-x).abs < 1 && (@y-y).abs < 1 && (@z-z).abs < 1 end false end

I've been working on millimeter dimensions. I tried printing this even though I knew it would be small with lots of support. It was. Just a lump. From now on scaling.

I constructed hulls around colliding cubes and tried to reject those that had an overhang requiring support. I don't quite have my logic right yet. But I wanted to give my printer something to do while at work. view

I found the bug in my slope logic and ran a scaled 7 hour print while at work. It finished at 5 on my way home. I got email from the printer. view

//scad.fed.wiki/assets/viewstl/viewstl.html?stl=http://scad.fed.wiki/assets/diffusion/test-0.2.stl HEIGHT 370

A couple of towers broke off while printing. This leaves a bundle of plastic threads where it thought it was doing serious work. I made the boxes a little more stout at the lower levels and bigger overall too. Well see.

I'm looking at 14 hour printing 10 dollars of material. Will it hold together? I'm itching to show it around. view

Morning arrives. With 30 minutes left the printer was working on three remaining spires with the one on the right nearly finished. It was scary to watch. The spire would flex when the print head sped off to other work. It appeared rigid enough when printing but I could easily imagine finding defects on close inspection. The tallest spire might be the most challenging. Fortunately luck has it with a thicker base.

Finished. This is what I imagined when I started on this yesterday. Except blacker. There are details within that are difficult to see because light doesn't get in there so well. And the nylon-carbon material is black to start with.

It looks like robotic coral grown from food drifting down in ocean currents. The cubes show through, of course, but they look strange all orthographically aligned. Maybe I should spin or tumble them as they drift? Or I could align them axially or use spheres instead. Lots of choices.

Idea. Punch a few holes for LED illumination from the base. Avoid landing cubes where these will be. Print a battery case and switch for the lights.

See similar work among many by Jessica Rosenkrantz.

See Fogleman's dlaf for fast diffusion in c++.