Skip to content

About

A toon-focused renderer for OpenUSD Hydra, with first-class MToon, MMD, Vulkan, and WebGPU support.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

345 Commits

Folders and files

Hydra Toon

License: Apache-2.0

A low-latency, avatar-first toon rendering runtime with Hydra integration, optimized for continuously changing animation rather than continuously changing scenes.

Scope

hydra-toon renders VRM / MToon and MMD avatars, on Vulkan first and WebGPU later. Hydra integration and direct evaluated-state input feed one renderer core (design policy §34). Its measure is input-to-photon latency and stable frame time, not peak FPS. It is built for VTuber and streaming applications and for real-time motion from tracking, mocap and XR input.

It owns the renderer: the host-neutral core, the Vulkan (later WebGPU) backend, the hdToon Hydra adapter, the MToon, MMD and PreviewSurface realizations, and the low-latency animation path.

It does not own the source formats, the USD schemas it reads, motion semantics or device input. Those belong to usd-vrm-plugins, usd-mmd-plugins, usd-motion-plugins and motion-connectors. Avatar evaluation composition and shared evaluated state belong to usd-avatar-runtime. Authored format semantics cross through USD; resolved runtime state crosses through an optional consumer adapter (integration scope). General USD rendering is hydra-merlin's role; ordinary USD assets use a PreviewSurface fallback while toon fidelity comes first.

Architecture

USD stage ─→ Hydra / format imaging ───────────────┐
Evaluated state ─→ Hydra output ──────────────────┴→ hdToon adapter ─┐
       └────────→ fast adapter ────────────────────────────────────┤
                                                                   ▼
                                                              RenderWorld
                                                               extraction
                                                           late latch / GPU update
                                                             Vulkan | WebGPU
                                                                   ↓
                                                          reusable RGBA product
                                                          viewport / Hydra / host

Static scene state and per-frame motion state take separate paths. A pose change updates a skeleton buffer and nothing else. The diagram is the target architecture; the capability matrix distinguishes existing late-frame input from runtime integration. Hydra is the scene integration layer: usdview checks the integration, and the renderer itself is judged in its own viewport. See the design policy. The output contract belongs to the render output policy.

Components

Component Directory Role
toon-render-world core/render-world/ host-neutral scene state
toon-render-extraction core/render-extraction/ scene state → draw work
toon-render-vulkan backend/vulkan/ Vulkan backend and Slang shaders
hdToon adapters/hydra2/ Hydra render delegate and renderer plugin
toon-headless adapters/headless/ headless runner and renderer evidence
toon-viewport adapters/viewport/ standalone window, the renderer's main evaluation host

What each can do today is the capability matrix; where new code goes is PROJECT_LAYOUT.md.

Documentation

docs/ — design, layout, capabilities, roadmap, building, changelog.

Contributing · Code of Conduct · Security policy.

Build

With CMake 3.24+, Ninja and a C++20 compiler, build and test from the repository root (on Windows, use a compiler developer shell):

cmake -S . -B build/plain-cmake -G Ninja
cmake --build build/plain-cmake
ctest --test-dir build/plain-cmake --output-on-failure

For OpenStrata (ost) renderer validation, run:

ost build --jobs auto
ost test
ost validate

The default build does not require OpenUSD. GPU checks need Vulkan 1.3 and slangc; without them they report SKIP. See BUILDING.md for dependencies, the Hydra adapter and the viewport.

License

Apache-2.0. The vendored MikkTSpace implementation retains its own license notices.

About

A toon-focused renderer for OpenUSD Hydra, with first-class MToon, MMD, Vulkan, and WebGPU support.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages