Breakdowns/Emerge 5

  • 08emergeNewFree
  • 08singularityNew
  • 05penumbraNew
  • 08nebulaNew
  • 21genuary26
  • 07bands
  • 05slate
  • 10gravity
  • 05warp
  • 05abiogenic
  • 10cascade
  • 08shift
  • 07formation
  • 02mesh
  • 08imaginary
  • 06arcs
  • 05dawnFree
  • 05eidolon
  • 09flareFree
  • 29genuary2025

Join waitlist ↵
168

Emerge 5

Tight, explosive growth with a new lottery palette every refresh.

Loading...
←→

emerge7

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
Works171
Writing31

Fragments

Learn creative coding with shaders. For design engineers, creative coders and shader artists: techniques, tools, deep dives. Powered by ThreeJS and TSL.

Loading...

2025 Phobon

phobon.ioShadercraft

Pages

HomeTechniquesUtilitiesBreakdownsWorksWriting

Contact

X @thenoumenonhey@fragments.supplyOKAY DEV @phobon
All rights reserved.

Implementation

Start from one live cell and a rule that says: if you're dead and anyone next door is alive, wake up—so the frontier races outward in a hurry. Survival isn't Conway, though: when you're alive, the three cells along your northwest–north–northeast arc are interrogated, and a handful of triple patterns force death. The result is aggressive growth with oddly specific "don't stand like that" clauses, and a full random palette each time the page loads.

Breakdown

The sketch pairs a permissive birth rule with a picky live-cell rule that only looks at the top row of the neighborhood. There are 3 key components:

Any-neighbor birth

If currentActive is 0 and neighborActiveCount > 0, the cell becomes 1. That's maximally eager: the wavefront is thick and fast.

Pattern-based death

For live cells, four explicit combinations of _nw, _ne, and _n zero the cell; if none match, it stays alive. So the full Moore count still mattered for birth (via neighborActiveCount), but survival is filtered through this narrow window on the northern arc—weird, but that's the point.

Live-cell veto patterns
If(_nw.equal(1).and(_ne.equal(1)).and(_n.equal(1)), () => c.assign(0))
  .ElseIf(_nw.equal(1).and(_ne.equal(1)).and(_n.equal(0)), () => c.assign(0))
// ...

Center seed and scale

initialSingleCell at the grid midpoint guarantees a radial explosion; framing.scale pulls the field inward so the chaos doesn't touch the viewport edges.

It's a nice reminder that CA art doesn't have to be Conway—local, legible rules with strange symmetries often read better on a wall than another glider soup.

Emerge 1

Emerge 1

Free
Emerge 2

Emerge 2

Free
Emerge 3

Emerge 3

Free
Emerge 4

Emerge 4

Free
Emerge 6

Emerge 6

Free
Emerge 7

Emerge 7

Free
Emerge 8

Emerge 8

Free

Be the first to know what's next