spatial-computing

A 3D indoor-scene tool that reads URDF or USD files, creates 2D floorplans, and places or removes objects on room or furniture surfaces. URDF and USD are file formats for describing 3D scenes and their objects.

In plain words
What is it for?
Use it to visualize floorplans, add or remove objects such as lamps and sofas, match objects to rooms or furniture by meaning, and update scene files.
Why use it?
It removes the need to position or delete scene objects manually while helping keep placements aware of surfaces and collisions.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/horizonrobotics/embodiedgen/spatial-computing
Any agent
npx skills add HorizonRobotics/EmbodiedGen --skill spatial-computing
Clone the repo
git clone --depth 1 https://github.com/HorizonRobotics/EmbodiedGen

Made for: Claude Code, Codex.

Per session 79 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,044 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00079 $0.04044
Opus 5 $0.00039 $0.02022
Sonnet 5 $0.00016 $0.00809
Haiku 4.5 $0.00008 $0.00404

Measured 3d ago against content hash cbb16dc49aa8, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

spatial-computing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

The scan reads SKILL.md. This mod also ships 10 executable files (__init__.py, api/__init__.py, api/floorplan_api.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

embodied_gen/skills/spatial-computing/SKILL.md · 406 lines

How it starts

The opening of the file, as written. The whole thing — 406 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Floorplan & Object Placement/Deletion

Overview

Parse indoor scenes from URDF, generate 2D floorplans, or place/remove 3D objects in scenes and write back to URDF/USD. After successful insertion/deletion, the corresponding file is automatically updated based on whether urdf_path/usd_path is provided.

When to use: Use this skill when you need to generate floorplans from URDF, place/delete objects on specified rooms/furniture surfaces, or batch update URDF/USD files.

⚠️ USD updates require room-cli: To update USD files, you must use room-cli instead of python -m, and specify the USD file via --usd_path. room-cli runs on Blender Python which includes the bpy module for OBJ→USD conversion; using python -m with --usd_path will fail with ModuleNotFoundError: No module named 'bpy'.

# ✅ Correct: use room-cli to update both URDF and USD
room-cli -m embodied_gen.skills.spatial-computing.cli.main \
  --urdf_path .../scene.urdf --usd_path .../scene.usdc ...

Smart File Naming Strategy:

  • Default behavior: First operation creates scene_updated.urdf, subsequent operations automatically overwrite it
  • No file bloat: Prevents *_updated_updated.urdf files from accumulating
  • Safe: Original scene.urdf is never modified unless explicitly requested
  • Works for both insert and delete: Seamless continuous scene editing

Best Practices & Constraints

1. Workflow for Continuous Scene Editing

Recommended workflow for multiple insert/delete operations:

# Step 1: View current scene
python -m embodied_gen.skills.spatial-computing.cli.main \
  --urdf_path .../scene.urdf --list_instances

# Step 2: First insert → creates scene_updated.urdf
python -m embodied_gen.skills.spatial-computing.cli.main \
  --urdf_path .../scene.urdf \
  --asset_path .../apple.obj --instance_key apple_1

# Step 3: Second insert → overwrites scene_updated.urdf
python -m embodied_gen.skills.spatial-computing.cli.main \
  --urdf_path .../scene_updated.urdf \
  --asset_path .../lamp.obj --instance_key lamp_1

# Step 4: Delete operation → overwrites scene_updated.urdf
python -m embodied_gen.skills.spatial-computing.cli.main \
  --urdf_path .../scene_updated.urdf \
  --delete_instance apple_1

Read the full file on GitHub · 406 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 406 lines · 79 tokens per session scan A cbb16dc49aa8

Subscribe to this mod's changes

spatial-computing is a skill published in the GitHub repository HorizonRobotics/EmbodiedGen (648 stars, last pushed 9d ago), licensed Apache-2.0. It adds 79 tokens to every session and 4,044 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.