threejs

Parse Three.js scene graphs, bake transforms, and export per-part OBJ and URDF.

4|Updated Feb 22, 2026
One-click install
npx skills add https://github.com/GeneralReasoning/env-skillsbench --skill threejs-generalreasoning
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: threejs
Source: https://github.com/GeneralReasoning/env-skillsbench/tree/main/threejs-structure-parser/environment/skills/threejs
Command: npx skills add https://github.com/GeneralReasoning/env-skillsbench --skill threejs-generalreasoning

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires three, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Three.js scene-graph parsing and export workflow enables extracting and organizing geometry by named parts for robotics or CAD pipelines, including bake transforms and per-part OBJ/URDF exports.

Core Features & Use Cases

  • Part partitioning: treat named Group nodes as distinct parts and assign meshes to nearest named ancestor.
  • World-transform baking: bake transforms into geometry prior to export for deterministic results.
  • Per-part export: generate per-part OBJ files and optional URDF articulation definitions.
  • URDF integration: build simple URDF from scene with joint inference to connect parts.

Quick Start

Load your scene module, call createScene(), then export per-part OBJ files or URDF data using the provided workflows.

Frequently Asked Questions about threejs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I export per-part OBJ files from a Three.js scene graph?

Three.js scene partitioning treats named Group nodes as distinct parts and assigns meshes to their nearest named ancestor, allowing the system to isolate and export distinct components from complex hierarchical visualizations.

Can I generate URDF articulation definitions directly from a Three.js scene?

Yes, URDF integration builds simple URDF articulation definitions from the Three.js scene by partitioning geometry into named parts and inferring joints to connect them for robotic workflows.

Why does my exported OBJ geometry have incorrect positioning when extracted from a Three.js scene?

Incorrect OBJ positioning occurs when scene transforms are not baked into the geometry before export. Baking world transforms into the geometry prior to export ensures deterministic, correctly positioned per-part results.

Do I need a specific scene structure to partition Three.js geometry for CAD exports?

You need a scene module exposing createScene() with named Group nodes acting as distinct parts. The partitioning logic assigns meshes to their nearest named ancestor to organize geometry for CAD pipelines.

What is the best way to separate a complex Three.js scene into individual meshes for robotics?

The best way is using part partitioning to treat named Group nodes as distinct parts, baking world transforms into the geometry, and exporting per-part OBJ files alongside inferred URDF articulation definitions.