← Selected work

Street Bloom.

A concrete wall opens up,
grows, and closes again.

Chrome branches push through the surface. Thin green membranes stretch between them, light builds underneath, and the whole thing recedes into concrete. This is the build behind a looping visual made for TouchDesigner.

12-second silent loop1280 × 720

The saved composite preview. The full-resolution projection version and live audio response are still to come.

Four phases.
One fixed wall.

The concept frames establish the changes in material and light. Morphing between whole images would move the wall too, so the animation keeps a dormant wall underneath and controls where the other images appear.

These are the original generated concept stills used to set the look. The animation above combines them through masks.

Five masks give
each material its timing.

Cracks arrive before chrome. Membranes fill in later. Residue only appears as the growth collapses. Separate grayscale sequences make those decisions controllable without shifting the wall or changing the loop length.

Crack mask640 × 360 · 15 fps

Fine branching fractures appear first and leave a temporary scar as the growth closes.

White areas carry the effect; black areas leave it out. These are viewing copies of the source sequences.

Closing the loop

The source mask sequences return to the same starting image. The saved validation found zero pixel difference between the first and last encoded frames across all five channels. That check applies to the source masks; the compressed videos here are for viewing.

One clock.
Separate controls.

The exported package contains five aligned PNG sequences, each with 180 frames. Every Movie File In TOP uses the same frame index so the cracks, material, light, and residue stay together.

Planned TouchDesigner setup
Dormant wallFixed backgroundConcept artworkMaterial source
CrackLevel / MathDarken fissures
ChromeLevel / LookupReveal + reflection
MembraneRampGreen translucency
Internal lightBlur / RampAdd emission
ResidueBlur / RampWarm scar
Composite → OUTKeep the wall still. Change the surface.

Keep the sequence in sync

The proxy runs at 15 fps for 12 seconds. The source masks are linear grayscale data; they need to retain their values through the network.

int(absTime.seconds * 15) % 180

Shared frame-index expression from the saved integration plan.

Let audio change the light

The planned audio layer uses low frequencies for internal glow, mids for reflections, and transients for brief crack highlights. It leaves the growth paths and sequence timing intact.

Audio response is the next step; it is not active in the animation on this page.

Where the build stands

The concept direction, animated composite, and TouchDesigner mask package are saved. The next work is assembling and checking the live network, producing the 1080p version, and testing brightness and alignment on a real wall.

Download the mask settings (JSON) ↓