propkit.py: textured-GLB writer (TEXCOORD_0, shared external textures, MIRRORED_REPEAT). prop_author.py: parametric generators — ramps, rails, furniture, trees, dressing — each with local-space grind metadata and skatemakerpro element/collider hints. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| props | ||
| textures | ||
| tools | ||
| index.html | ||
| manifest.json | ||
| README.md | ||
| serve.py | ||
park_kit — GODVERSE park object library
Reusable, textured, license-clean park objects for bookquoy and skatemakerpro
(and whatever comes next). 27 props, 18 photoreal surfaces, all original: geometry
authored parametrically in tools/prop_author.py, textures generated on the
MODELBEAST farm (flux_local, local GPU, no cloud spend).
The contract
props/ and textures/ ship together. GLBs are geometry-only (2–24KB) and
reference ../textures/*.jpg by relative URI, so every prop shares one texture set
and the browser caches each surface once. Move a GLB without the textures folder
and it loads grey.
manifest.json is the catalog. Per prop:
| field | meaning |
|---|---|
src |
props/<id>.glb — drop straight into a skatemakerpro props[] entry |
grinds |
grindable edges in prop-local metres {a:[x,z], b:[x,z], ya, yb, kind} — rotate/translate with the prop, append to the park rails[] |
element |
matching skatemakerpro terrain kind (quarter/bank/funbox/spine/ledge/mogul) with params — place alongside ramp props for real collision from the heightfield |
collider |
simple blocker hint for furniture/trees (box/cylinder/none) |
size |
world-space bounding box [x, y, z] |
Sampler is MIRRORED_REPEAT — tileable-intent textures never show a hard seam. UVs are world-scale (metres per tile fixed per material), so texture density matches across every prop.
Catalog
- obstacles (14): qp_24, qp_18, bank_12, kicker, funbox_ply, spine_ply, manual_pad, ledge_concrete, grindbox_ply, rail_flat_3m, rail_flat_6m, rail_kink, rail_rainbow, pipe_full (graffiti-bombed concrete full pipe)
- furniture (7): bench_park, bench_concrete, picnic_table, bin_council, bollard_steel, railing_ped_2m, planter_box (with gum sapling)
- vegetation (2): tree_fig (Moreton Bay, buttress roots), tree_gum (eucalypt)
- dressing (4): kerb_3m (slappy central), wall_graffiti (wallride bait), shade_sail, mound_dirt
View it
python3 serve.py 8151 # then open http://localhost:8151
Dropdown per prop or the full grid; red lines = grind metadata (toggle).
window.__view(id) / window.__ready() hooks for headless checks.
Regenerate
python3 tools/gen_textures.py # MODELBEAST textures (idempotent; --force name to redo)
python3 tools/prop_author.py # all GLBs + manifest.json
tools/propkit.py is the textured-GLB writer (UVs + external images — the
character_kit writers' upgrade). fan(..., out=) auto-orients windings; lathe
UVs wrap girth-first to match tube (bark ridges stay vertical).
Provenance
Everything here is original GODVERSE work. Textures: flux2-klein-4b on the farm,
prompts in tools/gen_textures.py. No game assets, no trademarks, no scans.