Skip to content

Warn on over-budget model triangle counts; drive --state - #1756

Merged
Noisemaker111 merged 1 commit into
mainfrom
claude/model-triangle-budget
Sep 5, 2026
Merged

Noisemaker111 merged 1 commit into
mainfrom
claude/model-triangle-budget

Conversation

@Noisemaker111

Copy link
Copy Markdown
Owner

Refs #1345. The tower-guard playtest reported ~700k-triangle tower models; nothing in the engine would have said so either way. The models turned out to be 557–732 triangles each, but a heavy model still only shows up as a slow frame.

  • packages/shell/src/render/modelLoad.ts: countSceneTriangles, recordModelTriangles, heavyModels, clearHeavyModels, setModelTriangleBudget, DEFAULT_MODEL_TRIANGLE_BUDGET (100k). DiagnosticGLTFLoader counts every loaded GLB and warns once per URL over budget.
  • packages/shell/src/devtools/DevtoolsOverlay.tsx: probes.heavyModels in debug_snapshot.
  • scripts/drive-dev.ts: --state <name> boots a capture.states entry like shoot --state, so a staged scene can be measured with --rpc debug_snapshot / --probe.
  • CHANGELOG.md, .claude/skills/jgengine-ui/{api,capabilities}.md: entries and generated docs.

Root cause: the loader had a fallback probe and a texture-error probe but no size probe, so a heavy asset was undetectable except by frame time.

Verification

  • bun test packages/shell/src/render packages/shell/src/devtools — 110 pass
  • bun --cwd=packages/shell run check-types — clean
  • bun run gen — 5 stages passed
  • bun run ship:preflight — ok
  • bun run drive tower-guard --state two-towers --rpc '{"method":"debug_snapshot"}'probes.heavyModels: [] with the KayKit towers loaded

No screenshots: a console warning and a probe field have no rendered surface.

🤖 Generated with Claude Code

The GLB loader counts each model's triangles as it lands, warns once per URL
above DEFAULT_MODEL_TRIANGLE_BUDGET (100k, retunable with
setModelTriangleBudget), and exposes heavyModels() plus a debug_snapshot
probe so a heavy prop is assertable evidence instead of a slow frame.
drive gains --state <name> to boot a capture.states entry like shoot does.

Refs #1345

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Noisemaker111
Noisemaker111 enabled auto-merge (squash) September 5, 2026 21:50
@Noisemaker111
Noisemaker111 merged commit c89d21b into main Sep 5, 2026
6 checks passed
@Noisemaker111
Noisemaker111 deleted the claude/model-triangle-budget branch September 5, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant