mirror of
https://github.com/lighttransport/tinyusdz.git
synced 2026-01-18 01:11:17 +01:00
Comprehensive documentation and working C++ examples for OpenUSD's Crate (USDC binary) format implementation. Documentation (crate-impl.md, 1249 lines): - Complete binary format specification with diagrams - File layout: Bootstrap, Value Data, Structural Sections, TOC - Key data structures: ValueRep (8 bytes), Spec, Field, TimeSamples - Type system: All 60 supported types documented - Reading implementation: 3 ByteStream backends (mmap/pread/asset) - Writing implementation: Packing, deduplication, async I/O - Compression: Integer/float/LZ4 algorithms detailed - Deduplication: 3-level system (structural/per-type/time arrays) - Version history: 13 versions (0.0.1 to 0.13.0) - Optimizations: Zero-copy arrays, parallel construction, etc. - Performance: Read/write speeds, memory usage, file sizes - Security: Bounds checking, recursion protection, validation C++ Examples (aousd/crate/): Three working programs demonstrating OpenUSD C++ API: 1. crate_reader (157 KB) - Read .usdc/.usda files - Traverse prim hierarchy - Display attributes and TimeSamples - Works with any USD file 2. crate_writer (329 KB) - Create animated USD scenes - Write TimeSamples for animation - Animated transforms and colors - Simple and complex scene modes 3. crate_internal_api (169 KB) - Inspect binary format (magic, version, TOC) - Analyze TimeSamples (uniform/non-uniform sampling) - Compare format sizes (ASCII vs binary) - Low-level format introspection Build Systems: - Makefile: Simple, fast Unix builds - CMake: Cross-platform, IDE integration - build.sh: Convenience wrapper script - Both monolithic and standard USD linking - Links against no-python OpenUSD builds Documentation: - README.md: Complete build/usage instructions - EXAMPLES_OUTPUT.md: Actual program outputs - Full API usage examples - Troubleshooting guide Verified Working: - Compiles with C++17 - Links against libusd_ms.so (monolithic) - Creates/reads .usdc files successfully - Binary format inspection working - TimeSamples encoding/decoding functional File sizes: ~660 KB total (all 3 programs) Binary compression: 50-60% smaller than ASCII 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.3 KiB
3.3 KiB