Skip to content

[Discussion] Adding VRM / VRMA support (PoC & Architecture) #341

Description

@CS6

Hi margelo Team,

I’ve been experimenting with adding VRM / VRMA support to react-native-filament and wanted to share a proof-of-concept I’ve been working on:

🔗 Proposal & Demo: https://github.com/CS6/react-native-filament-VRM

Just a heads-up: This is an AI-assisted prototype meant for discussion, not a production-ready PR!!!!!!!
If the maintainers and the community are interested in pursuing this, I am more than willing to invest my time into developing this as an official/community addon.

I would love to do this under your guidance and architecture guidelines to ensure the code aligns perfectly with the project's standards and long-term vision.

I’m opening this to kickstart a conversation about the architectural direction. Specifically, should VRM support be built directly into the core package, or should we expose lower-level APIs so it can live in a separate addon? Since this implementation required some changes to the core (like native/C++ bridge access for Filament material texture transform metadata), I'd love to get your thoughts before turning this into a real PR.

To show what's possible, the current demo (using official sample assets) already covers a wide range of features:

VRM 0.x / 1.0 humanoid & VRMA animation retargeting

External glTF/GLB animations with explicit humanoid mapping

VRM expressions (morph targets, VRM 1.0 material color/texture transform binds)

Override rules (overrideBlink, etc.) and LookAt behavior

VRMC_node_constraint and VRMC_springBone physics

Material fallbacks for unsupported VRM/MToon paths

Looking forward to hearing your feedback and finding the best way to approach this!

Image

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions