Repository navigation
FAQ
For most commands, yes: inspect (in full), render, convert, lods, printable, union and bpy run Blender in the background. Without it, inspect falls back to trimesh, or to a standard-library reader for GLB and binary STL that gives counts and size only. new, manifest, check --list, place (without its union step), gen and texture need no Blender. Blender 5.2.1 LTS was tested; pw.py doctor says what it found. See Getting started.
Blender's Workbench renders, conversions and remeshing run on the CPU; GitHub's Linux runners have no GPU and run every Blender test with Mesa's software OpenGL (Development). Image-to-3D (gen) needs a ComfyUI host with a GPU, or a hosted service.
Both Blender MCP servers (Blender Lab's official one and the community mcp-for-blender) run any Python the model sends, with no sandbox, on port 9876. polywright runs scripts headless on copies and returns short JSON instead of screenshots, which costs fewer tokens and leaves the user's files alone. It points to an MCP server for live sessions the user is watching. Details: the polywright-blender skill's references/mcp-bridges.md.
No. Image-to-3D output is dense, often non-manifold, without UVs and at an arbitrary size. The fountain in Recipes came out of Hunyuan3D-2 with 405,434 triangles and 3,048 non-manifold edges. convert --size-m --max-tris --uv makes a game version and printable a watertight solid; check says whether each meets its target.
Hunyuan3D-2 (single and multi-view) is built into pw.py gen. Any other ComfyUI workflow runs with --workflow, including ComfyUI's own TRELLIS.2 and Pixal3D template file as it is (Recipes). Hosted services (Meshy, Tripo, Rodin) are described in the polywright-generate skill and are not wrapped by pw.py.
That depends on the inputs. Hunyuan3D's open weights use Tencent's community licence, which does not cover the EU, the UK or South Korea. TRELLIS.2 and Pixal3D are MIT. Found models carry their author's licence. Fab, Sketchfab, the Unity Asset Store, Steam and MakerWorld ask you to disclose AI-made content. polywright records sources, licences and AI models in each asset's manifest.json so you can answer those questions; it cannot decide them for you (The asset contract).
No. Google's terms forbid exporting, caching or tracing Photorealistic 3D Tiles, and polywright never offers it. pw.py place builds places from OpenStreetMap and public elevation instead.
It does. In the US it reads USGS 3DEP 1 m lidar; elsewhere, or when that service fails, it falls back to the Mapzen terrain tiles on AWS (--dem terrarium), which are coarser. --dem flat skips elevation. OpenStreetMap coverage decides how much detail you get.
The public Overpass servers are shared and busy. They allow a few queries at a time per address and refuse generic user agents with HTTP 406. place sends a descriptive user agent, asks only for the tags it uses, tries three servers and waits between tries; a dense city box can still time out. Wait a minute and try again, or make the box smaller. The data is cached in <out>/data/osm.json, so a second run does not ask again.
pw.py and the tests run on all three in CI. On Linux the Blender tests run through the bpy wheel. Finding a Blender installed in /Applications (macOS) or as a snap or tarball (Linux) is written but not tested; set POLYWRIGHT_BLENDER if doctor does not find yours.
Claude Code as a plugin, and any agent that reads Agent Skills folders (GitHub Copilot, Cursor, Codex, Gemini CLI) by linking the skill folders (Getting started). Only Claude Code was tested.
This wiki describes polywright 0.1.2 and was last updated on 2026-10-11. The plugin is MIT licensed. Report problems in the issues.
Using it
- Getting started
- The skills
- Commands
- How checks decide
- The asset contract
- Errors and edge cases
- Recipes
- FAQ
The releases
Contributing
Elsewhere