Conversation
…d a measured palette Ten sockets derived from the 41 real bones the playground export ships without any, three ranged skills on real embedded clips, a hand-written three-only effect layer, and a light rig coloured from the reference photo and the model's own vertex colours. Gate R1 measures all 16 clips at boot.
A per-limb motion tracker gives every effect the hand or foot's own pointing axis and travel direction; cue times are now found by seeking the clip rather than guessed. Adds speed-driven limb trails and a directional muzzle flare, and stops the transparent floor from slicing the toes.
…oured bolt Wake gradient, guttering embers, rising sparks and a scorch that outlives the blast; the three punches escalate and a cast tints the limb wakes. Also corrects the demo's camera pair, which was stale from an earlier framing and mirrored the composition.
…zardry Projectiles are deformed rim-shaded globs and flat-shaded scrap, bile leaves a bubbling caustic pool, and a swarm of gnats replaces the rising motes. Fixes a NaN in the pool's hash that made it paint its own quad, and two inverted smoothsteps.
…e shape THREE.Points draws one primitive, so every effect was the same soft circle. Quads give velocity-stretched spark streaks, per-particle rotation, and an alpha-blended matter layer that gives dust and mist weight.
This reverts commit 96d5ebb.
…hits box_02 is a boxing clip and it was throwing projectiles, so the animation struck something while the effect flew away from it. The impact now happens at the fist: a procedural fracture from the struck point, a ring of air in the plane of the blow, streak debris and a little dust.
The break belongs to the character, not his bracers. Everything around it dimmed by a third: green sits near the peak of the luminance curve, so weights that read as crisp in cool blue clip to a wash.
The .badge markup has been in the demo panel since it was written but never had any CSS, so every demo rendered its subject class, provenance and status as one run-on sentence. Splits generatedWith on its own middot separator into one badge per step and styles the class from the site's existing tokens.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Roblin, a rigged goblin skirmisher, and gives the demo panel's provenance line real badges.
The demo
A character rebuilt as ONE measured skinned shell — 113,338 triangles, 41 real bones, 16 embedded clips, nothing fetched at runtime. The playground measured the surface and the rig; everything on top of that is authored here:
actionProfileat all, so each socket is (real bone) + (multiple of a measured body length, along a measured body axis). No literal world coordinate appears in the effect code.Gate R1
A clip that exists is not a clip that runs. Each of the 16 clips is seeked to 7 points and the skin is measured through
applyBoneTransformagainst the true bind pose:Deltas over 100% are expected — the rig binds in a T-pose. The column that separates a running clip from a parked one is
maxInterSampleDelta, reported per clip. Nothing isunevaluated, and there is no default-pass branch in the probe.The write-up, including the defects that only measuring found, is in
docs/showcases/roblin-stage-r.md.The badge change (touches every demo)
src/pages/demo.tshas emitted.badgespans since the panel was written, but no CSS for that class ever existed — so every demo rendered its subject class, its provenance and its status as one run-on sentence of inline text.generatedWithis authored as middot-separated steps and was rendered as a single badge; it is now split into one badge per step. No authored string changes..badgegets its first rules, built from the tokens already instyles.css:.btn's surface, border and 4px radius at a smaller size, in the mono face the site reserves for machine facts. The accent stays scarce as the palette note asks — amber fills afinalstatus and nothing else;placeholderrecedes behind a dashed rule.One subtlety worth flagging for review: the chip is
inline-block, notinline-flex.brand()wraps the product name in its own span, and inside a flex container the text following that span becomes a separate anonymous flex item whose leading whitespace is stripped — "img2threejs playground" rendered as one word.Checks
tsc --noEmitclean,npm run buildcleannpm run gate:r1in the standalone package exits 0 (16/16)character/placeholderdemo and anobject/finaloneKnown limits
Recorded in
object-sculpt-spec.jsonunderqualityContract.notDone, in short: no AI-vision fidelity review has been run; the single part label is still a bounds hypothesis (the bone names are not); the sprint's ground speed is authored because all 16 clips are in-place; andpreset:biped:fireis a static aiming pose with no strike in it, which is why the casts sit onbox_02/box_03.