Skip to content

feat(cli): meshy-t2.5 Smart Topology model on image-to-3d and text-to-3d [ENG-4166] - #14

Merged
Arlieeee merged 1 commit into
mainfrom
arliexubindu/eng-4166
Oct 13, 2026
Merged

Arlieeee merged 1 commit into
mainfrom
arliexubindu/eng-4166

Conversation

@Arlieeee

Copy link
Copy Markdown
Contributor

Adds Meshy T2.5 (ai_model: "meshy-t2.5"), a Smart Topology model, to image-to-3d and text-to-3d preview. Without --ai-model, smart topology behaves as before: no ai_model is sent and the API picks meshy-t2.

Added

  • --ai-model meshy-t2|meshy-t2.5 on image-to-3d create and text-to-3d create (preview), valid with --model-type smart-topology only. Standard mode keeps no model flag. multi-image-to-3d gets none because the API has no Smart Topology there.
  • --target-polycount is checked per model before the request: meshy-t2 100–15,000, meshy-t2.5 100–30,000. image-to-3d had no local range check before.
  • Polycount default (D-078): meshy-t2 keeps the CLI's 10,000 (D-076). With meshy-t2.5 the CLI sends no polycount, so the API's 15,000 applies. The 10,000 pin was there to lift meshy-t2's 4,000 default; with meshy-t2.5 it would only lower the model's own default.
  • These checks run on the merged payload, so --data gets the same rules. A Smart Topology ai_model without model_type: "smart-topology" fails with exit 2, and so does topology: "quad" with smart topology (the output is triangle-only).
  • Docs: docs/usage.md, skills/meshy-cli/SKILL.md (one line), decisions D-078, migration notes "Changes in 0.4.3", endpoint contracts (smart_topology) and the capability matrix. Credits are the same as meshy-t2: 5 for a mesh only, and for image-to-3d 15 with 2K/4K textures or 20 with 8K. A text-to-3d refine of a meshy-t2.5 preview works the same as one of a meshy-t2 preview.
  • Version 0.4.3.

Verification

  • pnpm typecheck && pnpm test: 639/639 pass. New loopback tests check that t2.5 is accepted with smart topology on image-to-3d and text-to-3d preview and that the request body carries ai_model: "meshy-t2.5". They also check that 30,000 is accepted for t2.5 and refused for t2, that t2.5 leaves the default polycount to the API while t2 still sends 10,000, and that each refusal (without smart topology, with quad, on refine, on multi-image, an unknown model) exits 2 before any request.
  • node dist/index.js --version prints 0.4.3. Compared with main, the command/flag tree only adds image-to-3d create --ai-model and text-to-3d create --ai-model. Nothing was removed.
  • These changes were not run against the live API.

Release notes (draft)

Highlights

  • Meshy T2.5 Smart Topology. image-to-3d and text-to-3d preview accept --model-type smart-topology --ai-model meshy-t2.5, with --target-polycount up to 30,000 (default 15,000). Without --ai-model, smart topology runs meshy-t2 as before (100–15,000, default 10,000). Credits are the same as meshy-t2.
  • Behaviour changes to note.
    • On image-to-3d, a smart-topology --target-polycount outside the model's range now fails before the request (exit 2) instead of being refused by the API.
    • A Smart Topology ai_model without --model-type smart-topology, or topology: "quad" with smart topology (sent through --data), now fails before the request (exit 2).
npm install -g [email protected]   # or @meshy-ai/[email protected]

🤖 Generated with Claude Code

…and text-to-3d

- --ai-model meshy-t2|meshy-t2.5 on image-to-3d and text-to-3d preview,
  with --model-type smart-topology only; omitted, the API picks meshy-t2.
- target_polycount checked per model on the merged payload: meshy-t2
  100-15000, meshy-t2.5 100-30000. meshy-t2 keeps the CLI default 10000;
  meshy-t2.5 leaves it to the API (15000), D-078.
- Smart Topology ai_model without smart-topology, and topology quad with
  smart-topology, are refused before the request.
- Docs: usage, SKILL.md, decisions D-078, migration notes for 0.4.3,
  endpoint contracts, capability matrix. Version 0.4.3.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@Arlieeee
Arlieeee marked this pull request as ready for review October 13, 2026 10:04
@Arlieeee
Arlieeee merged commit d99c555 into main Oct 13, 2026
5 checks passed
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