Differential Line

The Differential Line [github] algorithm is inspired by the way a number of biological things in nature grows. Among other things it is made to mimic the growth of the human brain, as well as a great number of plants. In brief; we start of with a number of connected nodes in a circle. Gradually we introduce new nodes on the line—prioritizing segments where the curve bends more sharply. Over time the curve grows increasingly intricate, but it never self-intersects.

If we start with a different shape, and draw the outside position of the object for each growth step, we can get an entirely different kind of system. This system shares the 3d like illusion created by the Orbitals algorithm.

differential differential differential differential.step differential.step differential.step

Leaf3

Leaf3 [github] is a three dimensional implementation of the algorithm that was the inspiration behind the various network algorithms I've been working with.

Differential Surface

Differential Surface [github] is a three dimensional implementation of the same ideas (more or less) that inspired the Differential algorithm, which I wrote a while back.

The faces of the mesh are affected by their neighboring faces over time—rejecting non-neighboring faces that are too close, and keeping a comfortale distance to their actual neighbors. The surface is gradually remeshed to account for it's growing surface area.

Another interesting addition to this system is to let the system grow towards an imagined nutrition source, or light source, of some kind. This results in strange fungi-like objects.

Orbitals

Orbitals [github] is inspired by the naive optimization process that Jared Tarbell has implemented in his "Happy Place" algorithm. Nodes are created in some, more or less structured arangement, before they start to make friends with their neighbors. Gradually the nodes make an effort to get closer to their friends, whilst at the same time keeping a comfortable distance from the nodes they have not befriended. The visualization is made by drawing lines betweeen pairs of friends as they walk around the canvas. Thus the final image is a history of all the friendships.

orbitals orbitals orbitals orbitals orbitals, box orbitals orbitals orbitals, lines orbitals, lines orbitals

Meshx

Meshx [github] is my first attempt at a three dimensional generative algorithm. The algorithm can grow from any number of seeds; either along another surface geometry, or freely in any direction. The algorithm grows by choosing random triangles on the surface of the structure and appending a triangular pyramid to that face. This gives the resulting geometry a ragged-looking appearance. I had no particular biological process in mind when I wrote this algorithm, but it turns out that it creates structures that look a lot like corals.

Tree

One of the first attempts I made at generative algorithms was a copy of this great little application. Recently I decided it was about time that I revisited this project, and below are a few of the results. As opposed to the algorithm in the link, my trees are generated pixel by pixel. That is, there are no pre-drawn parts. [github]

As you can see, if you examine the images a little, the trees take shapes that er neither realistic nor possible. Yet they look very much like trees at first glance.

The background is another algorithm of mine called Linetrace.

tree.linetrace tree tree

Differential Mesh

Differential Mesh [github] is an extension of the Hyphae algorithm. I started working on it with the intention of mimicking the growth of (certain types of) lichen. The results, to me, are equal parts crystal-like and biological.

lichen, sand clutter lichen, varying color lichen, distributed sources

Hyphae

Hyphae [github] is an algorithm I wrote in an attempt to mimick the growth of roots. You can see a video of how the algorithm grows here. The algorithm centers around letting circles grow "next to each other" in such a way that no two circles overlap. The results are incredibly intricate and fractal-like, and they can be tweaked in a great number of ways.

hyphae hyphae hyphae hyphae hyphae

Linetrace

After watching John Franzen drawing his incredibly fascinating "Each Line One Breath" drawings, I wanted to try doing somthing similar using code. After many failed results, I also ended up with a few versions I rather liked. They can hardly be said to behave in the same way as Franzen's drawings, as was the initial goal, however I find them equally interesting.

linetrace linetrace linetrace linetrace, sandstroke linetrace, sandstroke

Network

At some point I stumbled upon this great algorithm by Adam Runions et al. I have since spent some time replicating the algorithm itself, as well as trying to recreate the behaviour in other ways. As usual some of the results are similar, whereas others ... not so much.

network, leaf network network