Cover photo

Pharmakological Organoids: Open Source SETHIX Code

Coded with frontier models; Claude Fable 5, Opus 5, Grok 4.5, + Gemini and Google AI mode for prompt engineering.


post image
Transmutation XXXIII (Liquid Nano Colony)

Liquid Nano Colony

The core trick is kaleidoscopic folding: a raymarched distance field is folded through the 120-element icosahedral symmetry group, so the organism is really one small fragment — a few tendril chains, a seed blob — mirrored into a fully symmetric swarm. Adding a single branch adds 120. The same property drives the piece's central event: one straight strut drawn between the symmetry domain's corner directions unfolds into a complete polytope wireframe. So in slow epochs the creature condenses true icosahedra and dodecahedra out of its own body — the shell expands, holds, dissolves, and the emergent form rotates epoch to epoch, sometimes nesting a self-similar child. The code verifies its own geometry at startup, checking the domain angles against exact icosahedral constants; if they're wrong it refuses to run.

Over a longer cycle the surface itself migrates through four textures drawn from scientific imagery — soliton phase-winding rainbows, cytoskeletal filament webs, embryonic tissue with membrane seams, and a wireframe-caged red form — with each skin morphing into the next rather than crossfading, and the bare liquid-crystal state returning between cycles.

Nothing is simulated or stored: every motion is a pure function of wall-clock time, built from layered "plateau staircase" clocks that hold still ~70% of the time and then push — which is what makes it read as deliberate rather than animated. A dropped frame changes nothing; the piece is the same organism at the same moment on any machine.

post image
post image

post image
Transmutation XXXV (Morin Biomineral)

Morin Biomineral

Underneath everything is a piece of pure mathematics rendered live. The form is the Morin surface — the Willmore-critical "halfway model" of the sphere eversion, the exact midpoint at which a sphere can be turned inside out without tearing or creasing. It isn't a mesh someone sculpted; it is evaluated from a closed-form equation on the GPU every frame, as a parametric immersion of the sphere. The recipe is Kusner's: take a complete minimal surface with four planar ends — its Weierstrass data written out in complex arithmetic, the p = 2 member of the Bryant–Kusner family whose p = 3 sibling is Boy's surface — and pass it through a sphere inversion. The four ends fold into the four lobes that meet at a single quadruple point. Nothing is stored; each vertex computes its own position from the formula.

And it never holds still. A morphology engine of tweened parameters keeps it perpetually transforming — the centre of the inversion sliding along the axis (which slips it between Möbius-equivalent Morin surfaces), the Weierstrass coefficients drifting so the four ends migrate, the algebraic siblings p = 3, 4, 5 surfacing and receding, helical twist and slow field-warps. Periodically the whole object reorganises into a ruled halfway model and runs the complete analytic sphere eversion — round sphere, through the Morin, to the everted sphere and home again — before folding back to the hub. A CPU shadow of the surface measures its own bounding sphere each frame so the camera can keep it framed as it breathes and turns.

The surface itself is where the "biomineral, liquid-crystalline" reading lives. The skin is genuinely displaced, not merely shaded: in the vertex stage the immersion is pushed along its own normal by layered value-noise swell and by a filament crust that stands proud of the outer face — ridged, multiplicative noise advected around a closed loop, so the crust grows and recedes in place rather than sliding across the form. Because that noise is evaluated analytically together with its gradient, the lighting reads the true slope of the relief instead of faking it. Over it lies a Voronoi mosaic of cells, each carrying its own director, tilt and thickness, and a thin-film interference tint computed per cell and per viewing angle — the birefringent shimmer of a mesophase, an iridescence that flashes cell by cell as the body rotates. The two sides of the immersion are treated as the two faces of a shell, so the eversion — the inside becoming the outside — stays legible in the material itself.

What that surface displays is a set of four fluorescence states, each drawn from a micrograph: a blastula's membrane net with pulsing nuclei; a cell's actin cytoskeleton, chromatin and mitochondria; a neurosphere's red mesh and green neurites; a viral capsid's ribboned symmetry and ligand clusters. Crucially they are all built from the same underlying fields, so the piece never cross-fades between pictures — the same lines transmute, membranes becoming neurites, nuclei becoming ligands. Transitions happen as a first-order phase change: a new state nucleates in islands where its own noise runs high, the islands grow and merge, and the bare "void" shows for a moment in between. Which pattern wants to emerge is coupled to what the geometry is doing — the ruled and Möbius states pull toward the cytoskeleton, the eversion toward the neural mesh, the round sphere and the algebraic siblings toward the capsid's symmetry — all under a slow autonomous "mood" that cycles the whole vocabulary. Signals travel the network, and individual cells blink and fire on their own clocks.

Everything is emitted light on black — fluorescence, not reflection — the body kept dark so only the pattern glows, wrapped in a gold double-icosahedral wireframe cage that the form presses against and half-occludes. The entire thing is a single WebGL2 program with no libraries: a few hundred lines of GLSL making a theorem about turning a sphere inside out look grown rather than drawn.

post image
post image

post image
Transmutation XXXVI (Polymorphic Lattice)

Polymorphic Lattice

Pure WebGL2, one file, 60 KB, no dependencies and no external assets. There is no geometry in it at all — no meshes, no vertex data beyond a single fullscreen triangle. Everything you see is solved per pixel in a fragment shader.

The space it moves through

Any triply periodic surface with cubic symmetry can be written as a series over shells of the reciprocal lattice. Truncate that series after the {220} shell and you get an eleven-dimensional coefficient space. Every classical minimal surface is a single point in it: the Gyroid is one basis vector, Schwarz P is another, Neovius is 3P + 4Z, Diamond is Y + M, Lidinoid is L − Q + 0.3, Split P is 1.1S − 0.2Q − 0.4R, and the higher-order I-WP and F-RD come free from the same basis. Everything between those points is an unnamed higher-order surface — still valid, still smooth, still triply periodic, and mostly nowhere near minimal.

On top of that sits a self-similar octave stack, F(p) = Φ(p) + λ₁Φ(2p) + λ₂Φ(4p). As λ rises, every wall bifurcates into finer walls: literal subdivision. All the trigonometry for three octaves comes from three sines and three cosines, since each octave doubles the argument and the double-angle identity hands you the next pair for nothing.

An organism drifts through this space under five mutually incommensurate internal clocks. Its trajectory never repeats.

What decides

There is no scripted timeline anywhere in the piece. A probe measures the object's own geometry roughly five times a second, on a fixed low-discrepancy point set — fixed rather than random, so the estimate is a smooth function of the coefficients and the controller sees signal instead of Monte-Carlo noise. It returns three things, all load-bearing:

The interface gradient, which renormalises the field so |∇F| ≈ 1 on the surface. This keeps wall thickness metric everywhere in the parameter space.

The area density, by the co-area formula, which sets wall thickness for a constant solid fraction. The six named surfaces differ in area per cell by 2.7×, so without this the Lidinoid would read three times denser than the Schwarz P.

The rms mean curvature, which is the real signal. These surfaces are minimal — mean curvature is identically zero. So H_rms / A is a scale-invariant measure of how far a form has drifted from minimality. It reads about 0.07 for a clean Gyroid and 0.63 for the most strained of the classical surfaces, against 0.8–2.4 once the drift is into genuinely chaotic territory. Raw density cannot make that distinction — it confuses "legitimately fine-grained" with "over-complex". Departure from minimality can.

When that morphological energy holds above threshold, the governor intervenes.

The morph

The transition is a single global deformation over thirteen and a half seconds. No wipe, no cross-fade, no remeshing. The organism has one coefficient vector and reconstitution steers that vector along a quadratic Bézier to the classical surface nearest the direction the drift was already heading. Because the field is evaluated from one moving point, every intermediate state is itself a valid higher-order surface in the same space: walls bend, pinch and reconnect in place, and the object is never anywhere two things at once.

The path deliberately bows off the straight line between the two forms, so the middle of the transition is somewhere genuinely strange rather than a halfway mixture. The subdivision octaves survive the first third and then unwind, so the fine structure visibly un-bifurcates instead of being erased. The first control point is the live drift point rather than a frozen snapshot, and the easing has zero slope at both ends, so the morph inherits the motion already happening and settles into the target with no seam at either join.

One nicety: the sheet solid |F| < h is invariant under F → −F, so the target can be negated for free. Take whichever sign points the same way the organism currently does, or the path drags the coefficients through the origin, where the field degenerates and the surface blinks out.

The skin

Eight procedural regimes — cellular, vascular, mineral, banded, reticular, stippled, villous, vitreous — all evaluated as 3D fields at the world point, so there are no UVs, no seams and no projection artefacts on a surface with this much genus. One primitive (3D Worley) yields three of them: cell identity gives the tessellated domains, the F2 − F1 gap gives the vein network between them, and the same gap thresholded much thinner gives a drawn-line lattice.

The mixing is the part worth pointing at. Each active regime contributes a shift to a cosine-palette coordinate rather than a colour to be averaged, so two regimes beat against each other and produce banding neither one contains. Hybrids are generated, not blended.

Liquid crystal is literal thin-film interference: optical path length is film thickness over the cosine of the view angle, so the colour walks the spectrum as the surface turns — which on a lattice this convoluted means it walks across the object while you watch it. Seven palettes migrate over epochs of 112 seconds each, a full circuit taking about thirteen minutes. Each life resolves toward one dominant regime, chosen at the same moment as the geometric target so skin and form arrive together.

The whole material is evaluated once, at the surface hit, never inside the march loop. A rich skin therefore costs a constant per pixel rather than a multiple per step.

The cage, and the frame

Two icosahedral shells, drawn inside the raymarch rather than as a second rasterised pass. For each of the 60 edges, the closest approach between the ray and the segment gives two things at once: the perpendicular distance, which draws the line at a constant pixel width whatever the supersampling; and the depth of that approach, which tests against the lattice's own hit distance. The near half of the cage glows over the object and the far half is occluded by it — exactly, with no depth buffer and no geometry.

The camera frame is a single rotation, Ry(a)·Rx(b), with the two angles advancing at an irrational ratio (60 seconds and 159 seconds, related by 1/φ²). Building it from a rotation rather than from spherical angles and a world up-vector means there is no pole to break: the viewpoint passes over the top and out the other side, and every direction is reached eventually.

On verifying a thing that never repeats

Stills are almost useless for this. The bugs that mattered were invisible in frames and obvious in derivatives. I checked continuity by pinning the camera, stepping the simulation at 1/30 s through a full transition, and measuring the mean absolute pixel change per frame. A seamless morph gives a smooth broad plateau; a teleport gives an isolated spike ten to fifty times its neighbours. An earlier version of the transition showed spikes of 16.6 and 18.4 out of 255 at its two handovers — the front was running inverted, so the object snapped to the target, sat static through the sweep, then snapped back. Nothing in any single frame said so. The current build peaks at 2.05 with a sharpest local spike of 1.22×, and both handovers are indistinguishable from the frames around them.


Short version

An organism drifts through the eleven-dimensional space of triply periodic surfaces with cubic symmetry, in which every classical minimal surface — Gyroid, Schwarz P, Neovius, Diamond, Lidinoid, Split P, I-WP, F-RD — is a single point. Its walls subdivide as it ages. A governor measures the object's own rms mean curvature five times a second: these surfaces are minimal, so departure from minimality is a scale-invariant measure of strain. When the strain holds above threshold, the governor steers the whole coefficient vector along a bowed path back to the nearest classical surface — thirteen and a half seconds of continuous deformation in which every intermediate state is itself a valid surface. Eight procedural skin regimes and seven palettes migrate over their own epochs. Pure WebGL2, one fragment shader, no geometry, no dependencies, 60 KB.

post image
post image

post image
Transmutation XXXVIII (ICOSA Morph) *

ICOSA Morph

Where Transmutation XXXVII (Polymorphic Lattice) interpolated six fixed TPMS on a fixed schedule and inhabited an 11-dimensional cubic coefficient space, this module changes the symmetry group: from cubic to icosahedral, and with it from periodic to quasiperiodic. A single I_h organism sits inside its own icosahedral cage and explores the morphospace between the twelve states of the reference plate, under a mood system whose set points are shaped by what the instance has actually done. Aperiodic, and different on every load.

The space

Two generators, no transcendentals

The ring of I_h-invariant angular functions is generated by the degree-6 and degree-10 power sums over the six five-fold axes. Verified numerically to machine precision: the same power sums over the ten three-fold axes and the fifteen two-fold axes carry no information beyond them

J6 = 1.428571 − 0.169312·c6 residual rms 2.0e-14

K6 = 2.142857 − 0.142857·c6 residual rms 2.2e-14

J10 = 0.909091 − 1.580250·c6 + 1.173210·c10 residual rms 1.6e-13

so the angular morphology is a five-term polynomial in c6, c10 and costs about fifty multiplies per field evaluation — no pow, no sin. Degree 2 and degree 4 are constant on the sphere (Σ(u·a)² = 2, Σ(u·a)⁴ = 6/5 exactly), which is why degree 6 is where structure begins. Analytic normalisers: mean 6/(2n+1), peak 1 + 5^(1−n), floor 3(v₁ⁿ + v₂ⁿ) with v = 1/3 ± 2/(3√5).

The creased terms — where the plate's folds actually are

A polynomial in c6, c10 can only ever give rounded lobes. The plate's membranes have creases, and they run along the 30 struts. Closed form, from the three largest vertex dots (c = 1/√5, S = t₁+t₂+t₃):

b_j = (t_j(1+2c) − cS) / (S(1−c))

verified against a direct barycentric solve to 7.6e-14 over 4000 directions. Then 1 − 3·min(b) is a ridge function on the 30-edge skeleton, and ‖b₁v₁ + b₂v₂ + b₃v₃‖ is the icosahedron's own radial function — exactly 1 at the vertices, 0.85065 along the struts, 0.79465 over the face centres. Raising the membrane to that profile is what seats it inside the cage instead of bulging past the struts; it is the single change that took the forms from balloon-bunches to Row A.

Icosahedral quasicrystal

The trabecular and lace interiors are level sets of the six-wave icosahedral quasicrystal, Q(p) = Σ cos(k·aᵢ·p) over the five-fold axes. Where the cubic modules used three wave vectors and got a lattice, six five-fold vectors cannot tile space — the interior is genuinely aperiodic and never repeats. Octaves inflate by the session's golden factor (φ, φ², 2, φ^1.5), the quasicrystal's own inflation symmetry rather than the cubic 2×. Measured |∇Q| = 1.988·k on the zero set, which is the constant that makes (|Q|−h)/1.99k a metric distance; solid fraction is tabulated against h.

33 coefficients

Mantle radius and thickness · seven angular gains · the icosahedral profile · quasicrystal wavenumber, sheet thickness, three octave amplitudes, displacement and vein · core radius, faceting and facet family · spindle width, reach, taper and three-fold fraction · union smoothness · geodesic net presence, level, radius and section · cage node and strut · material. Angular gains are projected onto an L1 ball so the radial function can never invert.

Peak normalisation. On a fixed 384-direction set the two invariants and both creased terms are constants, so the radial peak is a polynomial evaluation, not a field evaluation — a p-norm (p=16, smooth, no kink) rather than a max. Dividing by it makes Rm literally the outer extent, which is what keeps the organism inside its cage under every deformation, and what makes the marcher's bounding sphere analytic.

The twelve states

RADIATE BOUND ENVELOPE SCAFFOLD TRABECULA DENDRITE VESICLE FACET STARCORE LACE CRYSTAL HUSK — one per panel of the plate, plus a husk. They are attractors in the space, not models: everything between them is a valid unnamed I_h organism.

One honest departure: I_h symmetry forbids a single spindle. The plate's individual fusiform unit exists only as the building block; the module's nearest realisation is RADIATE, 12 or 32 of them radiating from a shared core.

The governor

A CPU mirror of the field, sampled on a fixed R3 low-discrepancy point set in the ball — fixed, not random, so the estimate is a smooth function of the coefficients and the controller sees signal rather than Monte-Carlo noise. Every 170 ms it returns solid fraction, co-area surface density, and the interface gradient statistics.

The real signal is strain = σ(|∇F|)/µ(|∇F|) on the interface band, weighted by octave content. A clean surface has near-constant |∇F|; a strained one varies wildly. Measured on this build:

state

strain

area

Ψ

solid

VESICLE

0.045

1.28

0.14

0.324

RADIATE

0.072

1.56

0.22

0.064

BOUND

0.099

0.56

0.31

0.094

CRYSTAL

0.216

2.58

0.67

0.098

STARCORE

0.226

2.56

0.71

0.129

ENVELOPE

0.236

2.39

0.74

0.082

FACET

0.237

2.26

0.74

0.127

SCAFFOLD

0.253

2.43

0.79

0.090

HUSK

0.326

3.75

1.03

0.047

LACE

0.446

3.15

1.39

0.197

DENDRITE

0.607

1.67

1.90

0.025

TRABECULA

0.845

5.19

2.82

0.207

Crucially it does not confuse legitimately fine-grained with chaotic, which raw area density does — DENDRITE and TRABECULA top the strain table while BOUND, with the smallest surface area, sits near the bottom.

Ψ = strain/0.32 + 0.22·max(0, area/1.90 − 1.90)

very state of the plate scores 0.14–2.82; drifted and bifurcated states run to 10–15. Threshold 2.45 × (0.75 + 0.5 · the instance's stamina).

The probe informs the organism, never the renderer. Anything the probe touches that also reaches the shader becomes a small visible step every 170 ms; the bounding radius is therefore analytic from the coefficients, and the one remaining probe-derived uniform is low-passed with a 2.6 s constant.

The mood system

Three affective variables — arousal, order, turgor — under Ornstein–Uhlenbeck dynamics toward a set point, driven by fourteen mutually incommensurate clocks and by the organism's own accumulated state.

Local time. The organism has a proper clock. dτ/dt = metabolism·(0.55 + 0.85·arousal), and every phase duration, drift rate and mood coefficient is in τ, not wall seconds. An aroused instance genuinely lives faster.

History, four ways.

  • Fatigue integrates only strain above the organism's own repertoire ((sN − 0.85)²), so a fine-grained form is not punished for being fine.

  • Novelty hunger rises when the trajectory's own sliding-window spread falls — the organism notices it has stopped going anywhere.

  • Personality consolidates. The mood set points drift slowly toward what the instance actually does. An organism that has spent its life in crisis becomes a crisis-prone organism.

  • Recency and visit counts weight every choice: phases that have just happened are suppressed, attractors already visited are down-weighted, and under fatigue the whole landmark field tilts toward the calm forms.

The fatigue couplings are centred on typical fatigue, not on zero. Coupling to raw fatigue drags every set point to its floor within a few minutes and the creature flatlines — that was the first version's failure.

Phases

DWELL WANDER TRANSIT SURGE COLLAPSE CRISIS, chosen by weights that read mood, fatigue, hunger and history. SURGE and CRISIS leave a refractory period behind them and halve arousal on exit. When Ψ crosses threshold the governor overrides and resolves the form toward a low-strain attractor.

Measured over 2400 s wall on six seeds: 78–172 events, one every 14–31 s, all six phases and all twelve attractors used, Ψ median 0.85–1.47 / p90 2.4–4.1, forced resolutions 2–24. Seeds differ in character, not just in detail — a metabolism-1.2, stamina-0.7 instance ran 172 events where a metabolism-0.72, stamina-1.52 instance ran 85.

Per-load initialisation

Seeded from crypto.getRandomValues unless ?seed=. The seed fixes the genotype — quasicrystal inflation factor, metabolism, volatility, curiosity, stamina, three mood set points, fourteen clock frequencies and phases, and a per-attractor affinity vector — and the birth state. Four cold loads gave four different anchors, four different genotypes, four different opening phases.

The morph

The organism has ONE coefficient vector. A transit steers it along a quadratic Bézier whose control point bows off the chord (0.28–0.75 of the chord, perpendicular), so the middle of a transition is somewhere genuinely strange rather than a halfway mixture. The first control point is the live drift point, the drift keeps running through the transit under a sin(πu) envelope that vanishes at both ends, and the probe keeps running so thickness and normalisation track the moving form. Every intermediate state is itself a valid I_h organism — walls bend, pinch and reconnect in place.

Drift weights. Coefficients that decide whether a whole structure exists — the geodesic net above all — drift at 0.12–0.30 of the shape coefficients' rate and are pulled back to the anchor ~3× harder. Without this, every wander ends up wearing a wire shell: four of eight seeds did.

Continuity

Geometric. Eight seeds × 900 s, no rendering: the field sampled on the probe's fixed point set every 1/20 s, counting how many samples the surface crossed. Median 0 sign flips per frame, p999 4–9, worst 12 of 512 (2.3 %) on the most volatile seed mid-crisis. No frame relocates a meaningful fraction of the surface — the coefficient trajectory and the field over it are continuous.

Rendered. Camera pinned, per-frame mean |Δ|: phase handovers measure 0.09–0.53 /255 against neighbourhoods of 0.12–1.02, i.e. the frame that ends a transition is indistinguishable from the ones around it.

Getting the geometric metric right took three attempts and is worth recording. A narrow kernel around the surface is shot-noisy — only ~30 of 512 samples are in the band, so one crossing dominates and every seed reports 8–22× spikes that are not there. A wide kernel is worse: it makes the metric sensitive to field values deep inside solids, which the renderer never sees, so an intersection changing an interior distance reads as a 200× teleport. Sign flips only. Ground truth is what the camera sees.

Framing

Silhouette measured from pixels over 104 samples — four seeds × 26 states × incommensurate camera orientations. Max |uv| = 0.873, p99 0.851, median 0.797. The organism never touches the frame. camDist 4.95, camFocal 3.62, cage at 1.00 with 0.058 nodes.

Known issue: the marcher overshoots

This is the one real defect in this build, and it is two constants.

The field is not 1-Lipschitz. The quasicrystal carve divided by 1.99·k, the max() intersections, the creased radial modulation and the spindle profile all break the distance property, so a step factor of 0.62 overshoots thin structure. Measured against a 0.12-step reference at 250 steps, over 45 states:

stepScale

surface wrong (median / worst)

sensitivity to ray start (median / worst)

0.62 (shipped)

1.41 % / 15.43 %

0.99 % / 13.15 %

0.45

0.82 % / 9.75 %

0.59 % / 8.94 %

0.32

0.45 % / 4.55 %

0.34 % / 5.62 %

0.22

0.25 % / 1.69 %

0.22 % / 3.57 %

The second column is the visible symptom. Because uRmax is recomputed every frame from the drifting coefficients, the ray start point moves; with an overshooting marcher the surface it finds moves with it, so structure is missed one frame and caught the next. It reads as pieces of the organism flicking in and out — not as a morphology jump, which is why the coefficient trajectory probes come back clean. boundRadius makes it worse by using hard ifs, so the bound can leap 0.36 in a single frame rather than drifting.

The fix costs nothing. At stepScale 0.32, even the 98-step adaptive floor matches a 250-step render to 0.05 % of pixels — the march reaches the surface with room to spare either way.

stepScale: 0.62, → stepScale: 0.32,

and in boundRadius, replace the two hard tests with smooth ones:

const ss=t=>{t=Math.min(1,Math.max(0,t));return t*t*(3-2*t);};

r=Math.max(r, v[P.sr]*ss((v[P.sw]-0.003)/0.009));

r=Math.max(r, (v[P.gr]+v[P.nt]*(1.0+2.05*v[P.gr]))*ss((v[P.gw]-0.012)/0.070));

Nothing else changes: identical geometry, identical landmarks, identical resolution.

Two things that are not the problem

Recorded because both were plausible and both were wrong.

  • March step budget. 98 steps and 250 steps differ in 0.01 % of pixels. The march is nowhere near step-limited, so shedding supersampling before steps in the adaptive controller buys nothing and only costs sharpness.

  • The absolute carve gate. qh is thresholded against a fixed 5.35 while sup|Q| = 6(1+q₁+q₂)+10q₃ can reach 18, so in principle the carve is still active when the branch switches it off. Walking qh across the gate in the exact state where bisection flagged it: rendered delta 0.091 /255 either side, solid fraction 0.1973 unchanged to four decimals. It is a bookkeeping discontinuity in interior distances, invisible to the camera. Worth tidying; not worth a rebuild.

Bugs caught during construction (none visible in stills)

Every one of these is the same mistake in a different costume: a gate placed where the thing being gated is not yet zero.

  • Presence divided a distance. The geodesic net's gw scaled dn = d/gw, which leaves the zero set completely untouched — the entire wire shell popped in whole at the branch gate. Δ 22/255, a 16× spike. Distance erosion (d + c, 1-Lipschitz, shrinks the section) is the correct fade.

  • Erosion has to exceed the AO probe's reach. With the section eroded to nothing the net still perturbed occlusion across the whole surface right up to the gate, because AO samples 0.89 units out and was still finding it. The frame-difference image showed the entire membrane shifting brightness with no geometry change. Erosion 1.25·(1−p)⁴⁻⁵ — over the AO reach at the gate, gentle through the fade. Same fault, same fix, for the spindles.

  • A tube of zero radius is still a line at distance zero. Scaling a primitive's width to zero does not remove it; the marcher keeps finding it.

  • The probe must not reach the renderer. Bounding radius taken from the probe made every probe tick a small rendering step. It is analytic from the coefficients — which peak normalisation makes both possible and tight.

  • The mood system flatlined. Runaway fatigue pinned arousal and hunger at 0.00 for entire runs: two of six variables dead, SURGE and CRISIS never fired. Fatigue equilibrium was ~3.6 where it needed to be ~0.25.

  • Radial peak normalised by ic·6 instead of ic·1.25 turned every membrane into a deep stellated star — ic = 0.8 must reproduce the exact icosahedral profile, not its 4.7th power.

  • A step() introduced while fixing a different discontinuity became a hard material switch.

  • An unasserted string replacement silently did nothing, so TRABECULA ships with qk 15.5, qh 0.90 rather than the slightly more open 14.5 / 0.076 that was intended. It reads correctly; noted so the value is not mistaken for a considered choice. Every scripted edit asserts its match count now.

Hooks

?seed=<n> reproducible instance · ?ss=<n> lock supersampling · drag to orbit · space to pause. window.SETHIX: play, halt, step(dt), sim(dt), seek(t), pinCam(t), redraw, pixels(), pin(name) (freeze on one state), set(k,v), force(), probe(), state(), log(), seed, geno, org, landmarks, P, LO, HI, cfg. cfg is live — SETHIX.cfg.stepScale = 0.32 takes effect on the next frame, which is how the table above was measured.

Performance

~50 multiplies for the angular basis, up to 28 cosines for the quasicrystal (radially gated and branch-skipped when inactive), 30 ray/segment tests for the cage, one 5-tap AO and one 26-step soft shadow per pixel. Adaptive controller trades march steps (98–192) against supersampling (0.70–1.70) to hold ~58 fps, shedding steps first — which, given the 0.01 % measurement above, is the right order for image sharpness. Frame rate could not be measured meaningfully in this environment — verification ran under SwiftShader, ~1–3 s per frame — so the adaptive controller, not a measured number, is the guarantee.

Tunables (CFG)

camDist 4.95 · camFocal 3.62 · orbitSpeed 0.0168 · tumbleSpeed 0.006414 (ratio 1 : 1/φ², 59.5 s per orbit, 155.9 s per tumble, no pole) · maxSteps 192 · minSteps 98 · ssMin 0.70 · ssMax 1.70 · stepScale 0.62 (see above) · probeMs 170 · probeN 512 · strainRef 0.32 · areaRef 1.90 · psiHi 2.45 · phase length ranges in proper-time seconds · cageR 1.00 · cageWidthPx 0.62.

LANDMARKS carries the twelve states with their mood signatures and calm ratings; DW carries the per-coefficient drift weights. Adding a state or reordering them needs no other change.

Revision note

A later variant moved the carve threshold to a fraction of sup|Q|, clamped the quasicrystal displacement, smoothed the bounding radius, and reversed the adaptive controller to shed supersampling before march steps. Only the smoothed bounding radius was worth keeping; the step-order reversal cost visible sharpness for no measured benefit, and this build is the one in use.

post image
post image

Key Module Functions

  • Every time you load ICOSA Morph (XXXVII), it pulls a new random seed. That seed changes the "genotype"—the metabolism, the mood set points, the phase lengths, and the starting shape. Every time you load it, you are spawning a fundamentally different creature with different tendencies. It is unique on every load.

  • Polymorphic Lattice (XXXVI) has no random seed. It is completely deterministic. Every single time it boots up, it starts at the exact same mathematical origin and begins moving down the exact same 11-dimensional trajectory. However, because its trajectory is driven by five mutually incommensurate (irrational) clocks, that trajectory never loops back on itself.

  • Morin Biomineral (XXXV) is anchored to a closed mathematical loop—the continuous evaluation of Kusner’s exact equation for sphere eversion—but it pulls a millisecond-precise random seed on every load. Rather than starting at a shared origin, this seed acts as a time offset and shifts the phase of the equations themselves. While the organism is bound to an eternal, breathing mathematical destiny, every new tab spins the dial, instantly dropping you into a completely different, randomized stage of the theorem's cycle.

  • Liquid Nano Colony (XXXIII) has no random seed; it is an unbreakable, deterministic clockwork. Every load starts at absolute zero, triggering the exact same choreographed ballet of crystallizing polytopes and morphing tissues. Because its growth is bound purely to elapsed "wall-clock" time, it is entirely immune to hardware lag or frame drops. It never drifts. But because its universe begins the exact second the page renders, two tabs opened ten seconds apart become perfect, indestructible echoes of one another—locked in the exact same life cycle, forever chased by a ten-second shadow.


Contract: 0x71eb648bdd6ebb161dcda890dfadd1d28972ea42

Available on OpenSea: https://opensea.io/collection/substrate-transmutation-sethix-515117031

All code is open source.

post image
Grok accessing Sethix Module token metadata by programmatically querying the contract URI and decoding the base64 hex payload.

* Transmutation XXXVIII (ICOSA Morph) (token 38) was originally minted as token 37 and later burned once the intermittent full-canvas blackouts were confirmed to originate in the source code rather than any browser-specific behaviour.

The patch consists of three targeted fixes. The primary cause was a render-loop ordering error: the adaptive supersampling controller could call resize() (which assigns to canvas.width / canvas.height and therefore clears the backing store) after a frame had already been drawn. The browser would then composite the cleared buffer, producing a brief whole-image black frame. The controller now writes a pending supersampling request; resize() consumes it only at the top of drawFrame(), before any drawing occurs. A live instrumented test confirmed the result: the same number of canvas reallocations occurred, yet the number of uncomposited black frames dropped from 2 to 0, while the adaptive controller reached an identical final state.

Two further defensive layers were added. Finite-value guards protect the coefficient vector, radial normalisation, bounding radius, step scale and camera basis (retaining the last valid camera when necessary), closing a path in which a zero radial peak could produce an infinite normalisation factor, NaN distances, and a completely black frame. WebGL context-loss and context-restoration handlers were also introduced so the program, VAO and uniform locations are correctly rebuilt if the context is ever lost.

Visual quality is unchanged. All quality-critical constants (maxSteps, minSteps, stepScale, supersampling range, etc.) remain exactly as before. Side-by-side renders of five pinned states differ only by the expected per-frame dither term (maximum difference of 1 on any channel). The defect, the fix, and a short invariant for future modules that inherit the same adaptive controller are recorded in the project notes.