Simulation only, no hardware tested
NIUA has no robot hardware. Every check and run on this site happens in software, never on a physical robot.
Every robot in a simulator starts as a file that lists its parts, joints, sizes and weights. When AI writes that file, small mistakes slip in: a part that weighs nothing, an arm 1,000 times too big. NIUA checks the file, tells the AI exactly what to fix, and signs a certificate once it is right.
Works today with robot arm files (URDF). Also checks 3D game models (GLB).
Drop a robot file (a .urdf, or a .zip with its meshes). NIUA checks it right here and keeps nothing. No account needed.
Let your AI check its own files as it works. Connect it
That misses the mistakes that matter: a moving part that weighs nothing, joint limits set backwards, a whole arm 1,000 times too big. The file opens fine. You only find out when the simulation goes wrong.
The simulator and the file reader answer a different question: does it open? The good copies passed all three. Simulation only. See how we measured it
One script downloads the 13 robot files and runs all three tools on them. It needs Python 3 with MuJoCo and yourdfpy installed. On Windows, use curl.exe and py. Read the script first
curl -fsSLO https://ohao.tech/evidence/urdf-oracle/reproduce.py && python3 reproduce.pyEvery kind of file has its own checklist. For a robot arm it asks questions like: is every part attached? Does every moving part have a weight? Is it measured in meters? Each answer is pass or fail. Nothing is guessed.
Each failure says what is wrong, where, and how to fix it, in words an AI can follow. The AI makes the change and sends the file back. Nobody has to step in.
See a real run: Claude Code read the failures, edited the file and checked again until it passed.
It lists which file passed which checks. It is digitally signed, so anyone can confirm it is real on their own computer, with no account and no internet. Change one character and it stops being valid.
Example. A real one is linked below.
NIUA works with Claude, Cursor and other AI tools that support MCP, the standard way AI tools connect to outside services. Add this address in your tool's settings and the AI can check its own work.
claude mcp add --transport http niua https://mcp.ohao.tech/mcpReal runs, real files
Each result below opens to a demo you can run, the file we used and a signed certificate. Simulation only, no hardware tested
simulation only, no hardware tested
NIUA reads a robot file (URDF) against its robot checklist, urdf.sim-ready@1: every part attached in one chain, a real weight on every moving part, a collision shape on every visible part, joint limits the right way round, 3D files that exist, sizes in meters, not millimeters. Each failure names the part, what was expected, what was found and the fix.
simulation only, no hardware tested
We broke our arm 8 ways, one break per copy, and ran every copy through NIUA and two open-source tools. Those tools answer a different question (does the file load?), so they let most breaks through.
Broken copies flagged. Measured 2026-10-15. 13 URDF fixtures from our own desk arm (5 good, 8 broken). Gate: urdf.sim-ready@1. yourdfpy 0.0.60: URDF.load with meshes, then validate(). MuJoCo 3.16.0: MjModel.from_xml_path. Flagged means rejected or failed to load. result.json
simulation only, no hardware tested
Claude Code read the failures NIUA named, edited the robot file (every guessed value marked as a guess) and checked again until it passed. The MuJoCo simulator refused the original file and loads the fixed one.
Measured 2026-10-15. tools/auto-sim/run_auto_sim.mjs against production. MuJoCo 3.16.0 compiles each file, then runs 2 s under gravity from a bent pose with no actuation and checks the state stays finite. run.json
simulation only, no hardware tested
A real NVIDIA Unitree G1 humanoid clip passes motion.g1-safe@1 in a MuJoCo physics replay, run on CPU: every joint inside its range and speed limit, feet on the floor without sliding, upright the whole time. Four mistakes we planted were fixed first, each from a failure NIUA named.
Measured 2026-10-15. tools/g1-motion/record_production.mjs: the production gate checked the published clips; MuJoCo 3.16.0, Menagerie unitree_g1, timestep 0.002 s, joint PD kp 500 kv 10.32, root unactuated, sampled at 50 Hz. Source: the first 3.5 s of NVIDIA GR00T-WholeBodyControl macarena_001__A545. production.json
NIUA has no robot hardware. Every check and run on this site happens in software, never on a physical robot.
A pass means the file is well formed for a simulator. It does not promise a physical robot would behave the same.
We check that weights and joint limits are present and possible, not that they match a real robot.
This is planned. Nothing for it exists today.
The robot results on this site come from our own arm files, each one linked. They are not customer results.
Also checks today: humanoid motion clips, replayed in the MuJoCo physics simulator. Next: checked training data for robot AI.
NIUA started as a service that creates game assets with AI. Send a picture, a video or a sentence, and it returns a textured 3D model, a rigged character, an animation, music or speech. NIUA runs these open models itself, on rented GPUs. It still runs as a paid add-on.
Behind it: an API server written in Rust, GPU workers on Modal, pay-per-use billing, and a server so AI tools can call every model directly.
Every output here came out of NIUA's models. Inputs are labelled as inputs.




a person walks forward, stops and waves with the right hand
tense orchestral game ambience, low strings, slow taiko drums
heavy metal sword clash with a sharp ring and a short echo
Welcome to the shrine. The path ahead is long, but worth every step.