Add VRM1.0 rendering#47
Conversation
There was a problem hiding this comment.
Code Review
This pull request adds comprehensive support for VRM 1.0 features across VRMKit, VRMRealityKit, and VRMSceneKit, including humanoid setup, first-person render modes, node constraints, and updated spring bone and collider configurations. The feedback highlights several critical areas for improvement: validating metadata-derived indices before direct array subscripting to prevent out-of-bounds crashes, guarding against division-by-zero or NaN values in spring bone calculations when joint and parent positions overlap, and safely handling potential duplicate keys during dictionary initialization for node constraints to avoid runtime crashes.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
Thank you for checking this. I'm sorry that I didn't visually check if the display was correct in SceneKit. I confirmed the SceneKit regression. The cause was that the VRM1 MToon handling change made existing VRM0 SceneKit materials use PBR lighting, which caused Alicia to render with the metallic-looking appearance in the screenshot. I also updated MacExample so it can switch between SceneKit and RealityKit, and added the same expression controls there so both renderers can be compared more easily. |
|
Thank you for addressing the review comments and improving the samples. The code looks good as well, so I’ll merge it into the Thanks again for all your hard work! |




Summary
Closes #27
Details
nodeindex instead of migrated mesh indices.transparentWithZWritebehavior.VRMC_node_constraintroll / aim / rotation constraints with dependency ordering.meta.thumbnailImageas an image index.Validation
swift build --scratch-path /private/tmp/VRMKit-buildswift test --scratch-path /private/tmp/VRMKit-buildgit diff --check