Nina Jay Cragg — Process & Architecture

Making Of

The algorithms, the constraints, and the problems that were actually hard. Each card runs a live mini-demo of the project's core algorithm.

01Real-time cloth simulation in the browser

Drape

Position-Based Dynamics with Verlet integration. 4,900 particles connected by structural, shear, and bend springs. Sphere-based collision with velocity-corrected friction. Six fabric presets calibrated to real material properties.

4,900
Particles
60/frame
Solver Passes
6
Fabrics
28
Colliders
vel = (pos - prevPos) * damping
pos += vel + gravity * dt²
// 10 constraint iterations
// interleave collision every 3rd
Read Case Study →
02A mechanical linkage playground

Kinetic

Iterative relaxation solver for rigid linkage constraints. Seven preset mechanisms from Chebyshev to Strandbeest. Coupler curve tracing at arbitrary parametric positions. Eight procedural material shaders on Canvas 2D.

20/frame
Iterations
7
Mechanisms
8
Materials
1,500
Trace Pts
diff = (dist - restLen) / dist
correction = delta * diff * 0.5
// 20 relaxation iterations
// split equally between nodes
Read Case Study →
03A fish tank where every creature is alive

Glub

Seeded PRNG generates deterministic creatures from a combinatorial trait space. Craig Reynolds steering behaviors driven by five personality traits. Eight-state AI with needs. Procedural pixel art with zero image assets.

12
Body Shapes
30+
Palettes
8
AI States
480×270
Resolution
state = (state + 0x6d2b79f5) | 0
t = imul(state ^ (state>>>15), 1|state)
t = (t + imul(t^(t>>>7), 61|t)) ^ t
return ((t ^ (t>>>14))>>>0) / 2**32
Read Case Study →
04The algorithm that gets bra sizing right

Froot

Shape-weighted cup calculation using three bust measurements with projection-dependent weighting. Five-layer style scoring across 56 brands. 16MB search index with synonym expansion. Symptom-driven fit solver with conflict resolution.

16M+
Data Points
56
Brands
45K
Posts
5
Score Layers
projected: (stand + lean×2 + lie) / 4
shallow:   (stand×2 + lean + lie) / 4
// safety cap for over-projection:
if lean-stand > 2.5: cap result
Read Case Study →

All projects built from scratch — no templates, no boilerplate.

projects
🍊froot🪡drape💎hopperkinetic💡lamp
worlds
🚇transit🎟️longway🃏slips🧠poppyfield🍀the wall🧮beads🚩goals
rabbit holes
🔮fortune🗺️adventure📍memory map🖋️tattoo⚖️this or that🪨grade🏰pillowfort🌊drift🎵ipod🍬gummy🏛️palace
the collection
🎨moodboard📚library📖readvibe check💎nyc gems
tools & toys
🔪slicer✂️cutout🌱tend🔠fonts🧷atelier🪄make🖥️the desktop📰the issue
behind the curtain
👋about🎞️about, cinematic🎬making of📓process🧪lab📡status✍️guestbook📅calendar🧾receipt📣promo💌dedicate🧭codemap👁️read my eye🗃️shelf
0/50
the wind — cat stevens
paused