skatemakerpro/README.md
type-two db40f433fe SKATEMAKER PRO v1 — stand-alone park builder/editor for BOOKQUOY
Data-driven parks: one heightAt(x,z) evaluated from element JSON drives the
editor viewport, collision, test ride, and exported game levels. Ships with
Paddo ported from bookquoy, a MODELBEAST panel (gen images, cut bg, image->3D,
place farm GLBs as props), image decals + reference underlay tracing, a park
design linter (docs/DESIGN_PRINCIPLES.md), THPS-style instant test ride, and
a level.js codegen that drops straight into bookquoy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 19:34:45 +10:00

2.9 KiB

SKATEMAKER PRO — stand-alone park builder

The park editor for BOOKQUOY (and whatever comes after it). Born from bookquoy's one rule: heightAt(x,z) is the single source of truth — the same element data drives the editor viewport, the collision, the test ride, and the exported game level. Shape it in the editor and it is the real thing.

Run it

python3 serve.py            # http://localhost:8093

serve.py is static hosting plus the MODELBEAST proxy (token read from ~/Documents/backnforth/.env server-side — never shipped to the browser) and park/asset persistence (parks/, assets/uploads/).

The editor

  • BUILD palette — quarter, bank, funbox, pyramid, ledge, stairs, spine, mogul, bowl, island. Click a piece, click the ground. Drag to move, [ ] rotate, D dupe, delete, ⌘Z undo, optional 0.5m grid snap (THPS style).
  • SPOTS — rails/ledge-caps (two clicks, draggable end-balls), named score gaps, B·O·O·K·Q·U·O·Y letters, spawn point.
  • SURFACE — paint zones (rect/ellipse, any color), image decals (drop any image on the window, or generate one on the farm), and a reference underlay for tracing a real park from an aerial photo.
  • MODELBEAST panel — browse farm assets, one-click PLACE any GLB as a park prop, use any farm image as a decal, GEN IMAGE (flux_local, ~9s), MAKE 3D (hunyuan3d_mlx image→GLB). Everything free and local on the m3ultra queue.
  • PARK CHECK — live design linter encoding docs/DESIGN_PRINCIPLES.md: pumping geometry, run-out clearance, crossing lines, skill tiering, buried/floating steel.
  • ▶ TEST RIDE (Enter) — instant Create-A-Park-style build↔skate toggle with bookquoy's physics constants over the live data. W push, A/D steer, Space ollie.

Park format

parks/*.json — bounds, spawn, elements (parametric primitives evaluated by js/parkmath.js), rails, gaps, letters, zones, decals, props, optional underlay. parks/paddo.json is Paddington Skatepark ported from bookquoy — load it, ride it, remix it.

Export → BOOKQUOY

⬇ LEVEL.JS generates level.<name>.js exporting bookquoy's exact level.js contract (heightAt, normalAt, BOUNDS, RAILS, GAPS, LETTERS, SPAWN, buildLevel). To ship a park:

  1. copy js/parkmath.js + js/parkbuild.js + the generated level.<name>.js into bookquoy/js/, and any assets/uploads/ files it references
  2. point the two imports (main.js, player.js) at the new level file

⬇ JSON downloads the raw park data; SAVE/LOAD… persist to parks/ on disk.

Lineage

  • bookquoy (../bookquoy) — the game this feeds; level 01 PADDO
  • ~/Documents/thwk/THPS_STUDY.md — Neversoft architecture study (technique only, no extracted assets ever ship)
  • THPS Create-A-Park — inspiration for the palette/test-loop/themes/premade-parks shape