Cindersmoke — a smoke elemental minted from a rappter genome
A hovering smoke elemental that roils, re-forms, and stares back with flaring ember eyes.
What this is
Cindersmoke is a completely new creature — a smoke elemental — with its own model and its own animation, hatched fresh every time from a real .egg "rappter" genome. It is not a re-skin of the stock holographic blob. Model: Not a blob: the body is a live curl-noise PARTICLE VOLUME — hundreds of heat-graded sprites forming a hovering wispy smoke form with two almond ember eyes and drifting sparks.
Press New Cindersmoke and a brand-new, unique genome is minted, hashed to a 12-character id, and rendered live. Press Save .egg to download the real cartridge — the same .egg format the OpenRappter ecosystem hatches — or Load .egg to bring one back byte-exact.
How it moves
Continuous curl-of-a-scalar-potential advection + heat-scaled buoyancy over additive feedback trails makes the smoke genuinely roil and re-form; eyes flare to motion.pulse and spike on birth.
The genome behind it
Every Cindersmoke is packed as a genuine rappter .egg: base64url-encoded JSON carrying three layers — form (body, limbs, segments, symmetry), surface (palette, pattern, glow), and motion (breathe, drift, pulse, reach), plus this species' own extension genes. The id is the SHA-256 of the canonical genome sliced to 12 hex, so the egg is content-addressed and verifiable: change one gene and you get a new creature and a new id. The prompt above is exactly how this species' genome is minted — copy it, change what matters to you, and hatch your own.
Prompt
Mint a Cindersmoke: a volumetric smoke-elemental rappter genome. FORM — pick a shape biased to 'blob' (~60%, an amorphous cloud), sometimes 'ring' (a smoke-ring torus) or rarely 'star' (a starburst emission), symmetry usually 'bilateral' so it carries two eyes, 0–2 trailing limb wisps, segments 5–10, body_r 0.32–0.55, plus extension fields emberFrac 0.08–0.20, sparkFrac 0.02–0.06, eyeSep 0.5–0.9 and plumeHeight 0.5–1.0. SURFACE — pattern 'glow', an ember/ash palette of five hexes [white-hot core, orange glow, ember, warm dark smoke, cool-grey (or ~28% chance violet) ash], glow 0.6–1.0, opacity 0.35–0.7, emberGlow 0.5–1.0. MOTION — breathe 0.3–0.7, drift 0.4–0.9, pulse 0.4–0.9, low reach, plus roil 0.4–1.0 (curl turbulence), buoyancy 0.4–0.9 (updraft) and flicker 0.3–0.8. Render it as a fixed particle pool advected through a time-evolving curl-noise field with heat-scaled buoyancy and gentle cohesion so the body hovers and re-forms; draw additively over a fading dark backdrop for silky trails, and place two pulsing ember eyes that flare to the pulse value.
Paste into your favorite AI and adapt it to your context.
What I learned shipping it
- Curl of a scalar potential (vx=∂P/∂y, vy=−∂P/∂x) gives cheap divergence-free flow — the key to smoke that swirls instead of just rising
- Additive 'lighter' compositing plus a per-frame fade-to-background rect turns thousands of cheap radial sprites into convincing volumetric smoke without WebGL
- Pre-rendering a hot→cold sprite LUT once per genome (vs. per-particle gradients) keeps hundreds of particles at 60fps
- Verified headlessly by stubbing canvas/DOM and evaluating the REAL script to drive window.FAUNA — proved the animation loop, uniqueness, and exact egg round-trip with zero console errors, not just a clean syntax pass