Getting Started
Requirements

Requirements

Before installing Dexter, confirm your environment meets every requirement below. Missing any one of these will block a pipeline run at a specific step.

System requirements

RequirementMinimumUsed for
OSmacOS 12+, Linux (Ubuntu 20.04+)Blender, OpenCode
Python3.10+Tool scripts, JSON validation
Blender3.6+ (4.x recommended)GLB measurement, assembly, rendering, USD export
RAM8 GBBlender Cycles rendering (4 views × 1920×1080)
Disk~500 MB per runImages, GLBs, blends, renders, USD
NetworkRequiredOpenAI, fal.ai, OpenCode API calls

Software dependencies

OpenCode (agent runtime)

Dexter has no standalone Python pipeline driver. The OpenCode orchestrator agent is the only entrypoint. You need:

  • OpenCode CLI installed and authenticated
  • A connected model via Codex OAuth (/connect in the OpenCode TUI)
curl -fsSL https://opencode.ai/install | bash
opencode --version   # verify

Python packages

From requirements.txt:

PackageVersionPurpose
fal_clientlatestfal.ai Hunyuan 3D image-to-mesh API
openailatestOpenAI images.edit() for component PNGs
requestslatestHTTP downloads (GLB files from fal.ai)
jsonschemalatestJSON Schema validation gate
pyyamllatestconfigs/base.yaml parsing
pip install -r requirements.txt
python3 -c "import fal_client, openai, jsonschema, yaml; print('OK')"

Blender

Blender must be callable as blender on your PATH, or set paths.blender_binary in configs/base.yaml:

blender --version
# macOS alternative:
# /Applications/Blender.app/Contents/MacOS/Blender --version

Blender is used for four pipeline steps:

  1. blender_measure_glbs.py: raw bounding boxes per GLB
  2. blender_assemble.py: build scene from assembly.json
  3. blender_render_views.py: diagnostic PNG renders for the critic
  4. blender_export_usd.py: final USD export for Isaac Sim

All Blender scripts run in background mode:

blender --background --python tool_scripts/blender_assemble.py -- --layout <path> --output <path>

Arguments after -- go to the Python script, not Blender.

API keys and accounts

VariableServiceRequired whenGet it
OPENAI_API_KEYOpenAI Images APIImage generation stepplatform.openai.com (opens in a new tab)
FAL_KEYfal.ai Hunyuan 3D3D mesh generation stepfal.ai (opens in a new tab)
OpenCode authOpenCode / CodexAll agent stepsopencode → /connect
export OPENAI_API_KEY=sk-...
export FAL_KEY=...

API keys are never stored in config files or committed to the repo. Scripts read them from the environment at runtime.

Cost estimate per run

Costs vary by part count and placement loop iterations:

ServiceApproximate costNotes
OpenCode (analyze, critic)Depends on planSubagents use your logged-in model
OpenAI Images (gpt-image-2)~$0.02-0.10 per PNGOne PNG per part
fal.ai Hunyuan 3D~$0.10-0.50 per GLBOne GLB per part
BlenderFreeLocal compute

A 4-part dishwasher with 5-6 placement iterations typically costs $2-5 in API fees.

Input image requirements

Place source photos in input_images/. Supported formats: PNG, JPG, JPEG, WebP.

GuidelineWhy
Single object, clear viewAnalyze agent needs to see distinct moving parts
Neutral/plain backgroundWhite backgrounds work best for component image isolation
Show articulation stateIf doors are open or drawers extended, placement matches that pose
≥ 512×512 resolution1024×1024 or higher recommended

Bundled examples: input_images/dishwasher.png, refrigerator.png, washingmachine.png, oven.png.

Pre-flight checklist

Run these before your first pipeline:

# Python deps
python3 -c "import fal_client, openai, jsonschema, yaml; print('Python OK')"
 
# Blender
blender --background --version
 
# API keys
test -n "$OPENAI_API_KEY" && echo "OPENAI_API_KEY set" || echo "MISSING: OPENAI_API_KEY"
test -n "$FAL_KEY" && echo "FAL_KEY set" || echo "MISSING: FAL_KEY"
 
# OpenCode
opencode --version
 
# JSON validator
python3 tool_scripts/common.py --help

Next: Installation