Typed import/export tools for Blender scene interchange. Load this skill when a
workflow needs asset import (FBX, OBJ, USD), GLTF/USD/Alembic export, or batch
export. Existing blender-geometry exposes FBX/OBJ export names and delegates
to the same implementation.
Tools
| Tool | Category | Description |
|---|---|---|
import_file |
Import | Import FBX or OBJ files with format auto-detection |
import_fbx |
Import | Import FBX files with Blender's FBX importer |
import_obj |
Import | Import OBJ files with Blender's OBJ importer |
import_usd |
Import | Import USD files (.usd/.usda/.usdc/.usdz) with typed options — meshes, materials, cameras, lights, textures |
export_gltf |
Export | Export to GLTF/GLB for game engines and web (see GLTF export vertex counts) |
export_usd |
Export | Export to USD for pipeline interchange |
export_alembic |
Export | Export to Alembic with optional frame range |
batch_export |
Export | Run multiple exports with optional preset |
Prefer blender-export-preset for reusable export settings, blender-shot-export
for camera/shot metadata, and blender-scripting only after checking typed
interchange tools.
Native operator options
Options use the current host's RNA names. Represent enum flags as JSON arrays,
for example {"object_types": ["MESH"], "bake_anim": false} for FBX batch
export. Scalar enums remain strings. The adapter converts enum flags to native
sets while retaining JSON arrays in export receipts and stored presets.
Unknown names, invalid values, unfinished operators and missing output files return failure. Requested options are never dropped or retried with defaults. OBJ's basic writer is used only when no native OBJ exporter exists and no options were requested.
Typed USD import_textures maps to import_textures_mode (IMPORT_PACK or
IMPORT_NONE). Typed import_subdiv maps to the host's import_subdiv (4.5)
or import_subdivision (5.2) RNA property.
GLTF export vertex counts
A glTF/GLB file stores one vertex per unique normal + UV combination, so an exported asset systematically reports more vertices than the shared-vertex count Blender shows for the same mesh. A mismatch is expected behavior, not an export defect.
- Why: hard edges and flat shading split each corner into one vertex per face normal. A default cube is 8 vertices in Blender and 24 in GLB (3x), because each of the 8 corners carries 3 hard-edge normals.
- Rule of thumb: hard-edged / flat-shaded meshes multiply the most (typically 2x-4x; more for meshes with many UV islands or per-vertex color/skin splits); smooth-shaded meshes approach 1x. UV seams, tangents, vertex colors, skin weights and multi-material boundaries also split vertices, so a smooth-shaded mesh can still land above 1x.
- Measured example: a 3-part Blender white-clay model reported 554 vertices in-host and 2200 in GLB (~4x): cube 8 -> 24, sphere 482 -> 1984, cylinder 64 -> 192.
export_gltf returns no vertex / face / material metrics, so compare counts on
the exported asset: re-import it with import_file and inspect it with
get_mesh_info, run blender-validation checks such as validate_mesh and
validate_export_readiness, or use an external glTF validator. Never treat
"GLB vertex count differs from host vertex count" as a failure on its own.