Nishi 3D Render API

A sovereign first-byte-up 3D renderer as a callable service. The same integer render core (transform → perspective → z-buffer → per-face Lambert) that powers the live browser wasm renderer and the native NishiOS window, exposed as an organ: CLI → tools-api → MCP. Renders on the hub, byte-deterministic across machines — no GPU, no GL, no third-party code.

lit cube, angle 35
latest.png — rendered ON the hub by nx_render3d
lit cube, angle 55
angle55.png — rendered via one tools/call API request

Call it (MCP / JSON-RPC)

POST /mcp
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
  "name":"nx_render3d",
  "arguments":{"_cap":"<capability>",
    "argv":["cube","55","320","<out.png>","<public url>"]}}}

→ {"tool":"nx_render3d","mode":"cube","angle":55,"size":320,
     "drawn":4,"coverage":11006,"out":"...","url":"..."}

Modes: cube (per-face Lambert lit, back-face culled) · ztri (z-buffer proof scene). Any angle, any size to 1024px. Deterministic: the same call produces byte-identical pixels on any x86-64 machine — laptop and hub renders of this cube are the same 307,608 bytes.

One core, three surfaces

NishiOS native window (first byte up) · this API/MCP organ (render as a service) · the browser page (sovereign wasm; the only JavaScript is a last-mile canvas blit for third-party browsers).

Sovereign Nishi stack · nx_render3d composes nx_meshrender → nx_render_core · VM-parity gated · nishifamily.com/render3d