Repository navigation
feat!: image generators texture by default like the API; inspect faces --model counts a local GLB [ENG-4880] - #26
Merged
Merged
Conversation
…s --model counts a local GLB [ENG-4880] - image-to-3d and multi-image-to-3d no longer force should_texture=false. The API textures by default, so the CLI leaves the flag to it and adds the game-ready texture settings (PBR maps, 4k) unless the flag or --data turns texturing off. toDefaults now receives the parsed --data. --should-texture false is the draft. Texture settings on an untextured run are refused after merging (texturing.ts), whether they came from flags or --data. - inspect faces --model <file.glb|.gltf> counts the triangles of a local model from the glTF JSON: every mesh instance of the scene, strips and fans as n-2, points and lines as 0, compressed files included. The API does not report face_count, so a task source that answers unknown now hints at --model, and a failing model suggests `remesh --model-url`. Checked against real outputs: 982,320 (image-to-3d) and 15,500 (remesh). Docs: usage, SKILL.md, decision D-083. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
yujiaxu-ops
added a commit
that referenced
this pull request
Oct 27, 2026
This is a minor bump because #24, #25 and #26 contain breaking changes. - #24 (ENG-4877): `-o` saves only the primary files by default, and `--all-assets` saves everything. A file path for `-o` now picks the asset whose format matches the extension. - #25 (ENG-4878): legacy code and compatibility layers are removed. `--output-schema` and `--ultra-mode` are gone. `-o` uses the same asset keys and file names as `meshy download`. Project metadata is read only at schema_version 2. - #26 (ENG-4880): image-to-3d and multi-image-to-3d now texture by default, as the API does. `inspect faces --model` counts the faces of a local GLB. - #27 (ENG-4881): text-to-image and image-to-image warn when a pose on a nano-banana model ignores `--aspect-ratio`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Linear: ENG-4880. These come from an agent's end-to-end run of image → model → remesh → rig → animate.
1. image-to-3d and multi-image-to-3d texture by default, as the API does
meshyd defaults
should_textureto true on both endpoints, v1 and v2 (api_image23d_handlers.go). The CLI forcedfalse(draft-first), with two effects:maketextures by default, so it disagreed with the command it runs.Now:
should_textureis left to the API. The CLI adds its game-ready texture settings:enable_pbr: trueandtexture_resolution: "4k".--should-texture falseturns texturing off and sends no texture settings.--data '{"should_texture":false}'does the same, becausetoDefaultsnow receives the parsed--data.--data. The API answers that with a 400. The check runs on the merged payload, insrc/internal/texturing.ts.2.
inspect faces --model <file.glb|.gltf>The public task response has no
face_count. meshyd stores the count, and the rigging 300k ceiling reads it, but it does not expose it. So the task sources could only ever answerunknown(exit 13).--modelcounts the triangles of a local model from the glTF JSON alone, using accessor counts, so Draco- and meshopt-compressed files count too:Malformed files are refused with a usage error that names the file. A failing model suggests
meshy remesh create --model-url <file>. A task source that answersunknownnow hints at--model.I checked it against the real outputs of that run:
Tests
pnpm typecheckis clean andpnpm testpasses 644/644.tests/texturing.test.tschecks the wire payload for both commands:falseset by flag or by--data;.glband.gltf, and six malformed cases) and command tests (pass, fail, the remesh suggestion, the unknown hint).Docs:
usage.md, SKILL.md, and decision D-083.🤖 Generated with Claude Code