Synth Core
Physics-simulated humanoids from any Unity Humanoid model. MuJoCo-powered skeleton, mesh splitting, and extensible skill architecture.
com.genesis.synth 
Install via UPM
Add to Unity Package Manager using this URL
https://www.pkglnk.dev/synth.git README Markdown
Copy this to your project's README.md
## Installation
Add **Synth Core** to your Unity project via Package Manager:
1. Open **Window > Package Manager**
2. Click **+** > **Add package from git URL**
3. Enter:
```
https://www.pkglnk.dev/synth.git
```
[](https://www.pkglnk.dev/pkg/synth)Dependencies (1)
Used By (2)
README
Synth Core
Create physics-simulated humanoids in Unity using MuJoCo for accurate rigid-body dynamics, mesh-based collision geometry, and an extensible skill architecture. Ships with built-in support for Daz Genesis 8 and Mixamo skeletons, and is extensible to other Humanoid rigs via the adapter pattern.
Features
- Multi-Skeleton Support ā Built-in adapters for Daz Genesis 8 and Mixamo rigs with auto-detection; extensible to other skeleton types (including later Genesis versions) by adding a
HumanoidAdaptersubclass. - Editor Wizard (
Synth > Create Synth from Humanoid) ā Guided setup: select model, review discovered bones, configure joints, set mass distribution, generate assets and prefab. Also available as a one-click right-click menu on any Humanoid model in the Project window. - Avatar-First Bone Discovery ā Uses Unity's Humanoid Avatar API to map standard bones, with name-pattern fallback for extended bones (pectorals, gluteals).
- MuJoCo Physics ā Mesh-based collision geometry per bone, motor actuators with per-axis gear ratios, configurable spring stiffness and damping.
- Extensible Skill Architecture ā
ISynthSkill,ISynthSense,ISynthPlannerinterfaces for building custom behaviors on top of the physics body. - Mass Distribution ā Automatic vertex-weight-based mass allocation with hierarchical parent/child redistribution.
- Eye Cameras ā Stereo vision cameras positioned at eye bones for first-person visual observations.
Ecosystem
synth-core is the foundation of a three-package architecture for creating, training, and interacting with physics-simulated humanoids:
| Package | Role | |
|---|---|---|
| synth-core (this repo) | Humanoid creation, MuJoCo physics, skill architecture | ā |
| synth-training | On-device reinforcement learning via TorchSharp SAC | Optional |
| synth-vr | Mixed reality interaction on Meta Quest | Optional |
synth-core provides the physics body, motor system, and extensible skill/sense interfaces. synth-training plugs into these interfaces (ISynthSkill) to add on-device learning ā no external Python server needed. synth-vr adds Quest hand tracking, room integration, and passthrough rendering so the Synth lives in your physical space. When all three are combined, the Synth trains live on Quest while you physically interact with it in your room.
Requirements
- Unity 6000.x or later
- MuJoCo Unity plugin (
org.mujoco) ā via the arghyasur1991/mujoco fork (synth-patchesbranch) pip install mujocofor the native library on macOS/Linux
Installation
Add to your Unity project's Packages/manifest.json:
{
"dependencies": {
"com.genesis.synth": "https://github.com/arghyasur1991/synth-core.git",
"org.mujoco": "https://github.com/arghyasur1991/mujoco.git?path=unity#synth-patches"
}
}
Or clone as local submodules and reference them:
{
"dependencies": {
"com.genesis.synth": "file:../../synth-core",
"org.mujoco": "file:../../mujoco/unity"
}
}
Quick Start
- Import a Humanoid character model into Unity (Daz Genesis 8 or Mixamo recommended; set Rig type to Humanoid in import settings).
- Right-click the model in the Project window and select Create Synth for one-click setup with defaults, or open Synth > Create Synth from Humanoid for the full wizard.
- Drop the generated prefab into your scene.
- Press Play ā the character is now a physics-simulated Synth.
Package Structure
synth-core/
āāā Runtime/
ā āāā Core/ SynthBone, SynthBoneCatalog, SynthBoneMapper,
ā ā HumanoidAdapter, Adapters/ (Daz, Mixamo, Generic)
ā āāā Components/ SynthEntity, SynthBrain, SynthMotorSystem, Senses
ā āāā Data/ SynthData, SynthModel, SynthBonesData, SynthBodyData,
ā ā BoneJointsData, SynthJointDefaults, SynthMassDefaults
ā āāā MujocoComponents/ SynthPhysicalBody, SynthBoneJoints, SynthObservations,
ā ā SynthActions, BoneFilterConfig
ā āāā Interfaces/ ISynthSkill, ISynthSense, ISynthPlanner
ā āāā Mesh/ SynthMeshRenderers, SynthEyeCameras
ā āāā Utility/ TransformExtensions
āāā Editor/
āāā SynthSetupWizard.cs
āāā Inspectors/ Custom editors for SynthModel, BoneJointsData, SynthBodyData
āāā SynthAutoRebind.cs
āāā PlayModeSelectionFix.cs
API Overview
| Type | Purpose |
|---|---|
SynthEntity |
Root identity component ā declares "this is a Synth" |
SynthBrain |
Coordinates skills and motor control each physics step |
SynthMotorSystem |
MuJoCo ctrl callback, action application, observation collection |
SynthBoneMapper |
Avatar-based bone discovery with name-pattern fallback |
ISynthSkill |
Interface for implementing behaviors (training, imitation, etc.) |
ISynthSense |
Interface for sensory modalities (proprioception, vision, contact, auditory) |
SynthData |
ScriptableObject aggregating model, joints, and body data |
BoneFilterConfig |
Configures which bones contribute to observations and actions |
Roadmap
- Real senses ā Vision from eye cameras, auditory processing, contact/touch perception ā replacing current stubs with functional sensory pipelines
- Multi-Synth scenes ā Multiple independent Synths in one MuJoCo scene with inter-character contact and social dynamics
- Speech and communication ā Talking to and with the Synth through natural language, voice synthesis, and conversational interaction
- Higher-level brain ā Task planning, goal decomposition, and executive function layers on top of the motor skill architecture
- Toward sentience ā Long-term goal: autonomous agents with integrated perception, memory, reasoning, and self-directed behavior within virtual worlds
License
Apache-2.0 ā see LICENSE for details.
No comments yet. Be the first!