File size: 6,388 Bytes
7b853a5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | # Project Structure
```text
kimodo/
βββ kimodo/ # Main Python package
β βββ model/ # Model architecture and loading
β β βββ kimodo_model.py # Kimodo diffusion model wrapper
β β βββ twostage_denoiser.py # Two-stage denoising architecture
β β βββ backbone.py # Transformer encoder backbone
β β βββ diffusion.py # Diffusion process
β β βββ cfg.py # Classifier-free guidance
β β βββ common.py # Shared model utilities
β β βββ load_model.py # Model loading and registry lookup
β β βββ loading.py # Checkpoint loading utilities
β β βββ registry.py # Model registry (skeleton, checkpoint URLs)
β β βββ text_encoder_api.py # Text encoder API client
β β βββ tmr.py # TMR compatibility
β β βββ llm2vec/ # LLM-based text encoder
β βββ motion_rep/ # Motion representation
β β βββ reps/ # Skeleton-specific motion reps
β β β βββ base.py # Base motion rep types
β β β βββ kimodo_motionrep.py
β β β βββ tmr_motionrep.py
β β βββ conditioning.py # Conditioning (text, constraints)
β β βββ feature_utils.py # Feature extraction
β β βββ feet.py # Foot contact / smoothing
β β βββ smooth_root.py # Smooth root representation
β β βββ stats.py # Normalization statistics
β βββ skeleton/ # Skeleton definitions and kinematics
β β βββ definitions.py # Skeleton topology (joints, chains)
β β βββ registry.py # Skeleton registry
β β βββ base.py # Base skeleton types
β β βββ kinematics.py # Forward kinematics
β β βββ transforms.py # Rotation/transform utilities
β β βββ bvh.py # BVH I/O
β βββ viz/ # Visualization
β β βββ scene.py # 3D scene setup
β β βββ playback.py # Timeline / motion playback
β β βββ viser_utils.py # Viser 3D helpers
β β βββ gui.py # Demo GUI components
β β βββ constraint_ui.py # Constraint editing UI
β β βββ coords.py # Coordinate frames
β β βββ soma_skin.py # SOMA character skinning
β β βββ soma_layer_skin.py # SOMA layer-based skinning
β β βββ smplx_skin.py # SMPL-X skinning
β β βββ g1_rig.py # G1 robot rig
β βββ demo/ # Interactive web demo
β β βββ app.py # Demo entry (Gradio / Viser)
β β βββ config.py # Demo configuration
β β βββ state.py # Application state
β β βββ ui.py # UI layout and callbacks
β β βββ generation.py # Generation pipeline for demo
β β βββ embedding_cache.py # Cached text embeddings
β β βββ queue_manager.py # Request queue for demo
β β βββ __main__.py # Demo run as module
β βββ exports/ # Motion export formats
β β βββ bvh.py # BVH export
β β βββ mujoco.py # MuJoCo export
β β βββ smplx.py # SMPL-X export
β βββ metrics/ # Evaluation metrics
β β βββ base.py # Metric base classes
β β βββ foot_skate.py # Foot skate metric
β β βββ constraints.py # Constraint satisfaction
β β βββ tmr.py # TMR-based metrics
β βββ scripts/ # CLI and helper scripts
β β βββ generate.py # CLI for motion synthesis (kimodo_gen)
β β βββ run_text_encoder_server.py # Text encoder server (kimodo_textencoder)
β β βββ gradio_theme.py # Gradio theme for demo
β β βββ docker-entrypoint.sh # Docker entrypoint for demo
β β βββ lock_requirements.py # Dependency locking
β β βββ mujoco_load.py # MuJoCo scene loading
β β βββ ... # Other helpers
β βββ assets/ # Package data (shipped with package)
β β βββ demo/ # Demo examples and config
β β βββ skeletons/ # Skeleton assets
β βββ constraints.py # Constraint definitions and handling
β βββ geometry.py # Geometric utilities
β βββ postprocess.py # Post-processing (e.g. MotionCorrection)
β βββ meta.py # Motion metadata
β βββ sanitize.py # Input sanitization
β βββ assets.py # Asset path resolution
β βββ tools.py # General utilities
βββ MotionCorrection/ # Optional C++/Python post-processing
β βββ python/motion_correction/ # Python bindings
β βββ src/cpp/ # C++ implementation
βββ docs/ # Documentation (Sphinx)
β βββ source/ # RST/MD sources
βββ assets/ # Repo-level assets (banner, screenshots)
βββ pyproject.toml # Package config and entry points
βββ setup.py # Setuptools entry (if needed)
βββ Dockerfile # Container image for demo
βββ docker-compose.yaml # Docker Compose for demo + text encoder
βββ README.md
```
Entry points (from `pyproject.toml`):
- **`kimodo_gen`** β command-line motion synthesis (`kimodo.scripts.generate:main`)
- **`kimodo_demo`** β interactive web demo (`kimodo.demo:main`)
- **`kimodo_textencoder`** β text encoder server (`kimodo.scripts.run_text_encoder_server:main`)
|