tinyworld-tinyverse-race-track

star 953

Use when changing the Tinyverse ground-surface race track, perimeter bridge loop, rally karts, or poser-surface show/hide hook.

jasonkneen By jasonkneen schedule Updated 6/15/2026

name: tinyworld-tinyverse-race-track description: Use when changing the Tinyverse ground-surface race track, perimeter bridge loop, rally karts, or poser-surface show/hide hook.

Tinyverse Race Track

The race track lives in engine/world/61-tinyverse-race-track.js.

Rules:

  • Keep the system isolated from avatar files. The track wraps window.__tinyworldPoserSurface.{build,show,hide} and attaches one root group under the poser-surface group.
  • Respect sky-island vs ground-surface separation: do not add race-track meshes to worldGroup directly and do not mutate editable island or home-grid cells.
  • The poser surface scales Y three times harder than X/Z. Keep root.scale.y = 1 / 3 and multiply sampled terrain heights by 3 before placing track/kart geometry.
  • Use existing TinyWorld material families (M.path, M.pathTrim, M.bridgeWood, M.bridgeWoodD, M.castleStoneD) instead of new texture assets. Clone them locally when the track needs fog=false readability, but never mutate shared M.* materials.
  • Keep static road/bridge pieces in a static subgroup and run mergeStaticBaseMeshesByMaterial(...) after authoring. Dynamic karts should stay in their own subgroup and animate by transform only.
  • The HUD should be visible only while the poser surface is visible. PS.hide() must hide it and clear active race state.
  • Keep an obvious user-facing entry point. The Play rally launcher should call watch(), descend to the poser surface, frame the route from the ground layer, and start the race after the descent settles. Do not leave the rally as a console-only or hidden-key feature.
  • Watch mode may set body.tinyverse-rally-watch to clear obstructive editor panels and use a lightweight follower camera. Keep this state scoped to watch() and clear it on hide.
  • Do not create a local requestAnimationFrame loop. The module exposes window.__tinyworldRaceTrack._tick(dt), and 25-animation-loop-schema.js calls it from the main loop; _tick must stay a fast no-op while hidden.
  • Public runtime hook: window.__tinyworldRaceTrack exposes show(), hide(), watch(), startRace(), stopRace(), rebuild(), group(), and routeLength().

Validation:

  • node --check engine/world/61-tinyverse-race-track.js
  • node tools/check.js
  • Visual check: click Play rally or call window.__tinyworldRaceTrack.watch() and confirm the app descends to the ground islands, frames the road loop, shows the HUD, and starts moving karts.
Install via CLI
npx skills add https://github.com/jasonkneen/tiny-world-builder --skill tinyworld-tinyverse-race-track
Repository Details
star Stars 953
call_split Forks 133
navigation Branch main
article Path SKILL.md
More from Creator