Built a 3D model viewer by Malick MurtazaBuilt a 3D model viewer by Malick Murtaza

Built a 3D model viewer

Malick Murtaza

Malick Murtaza

Built a 3D model viewer inside @Rive . Not a plugin, not an embed — an actual glTF renderer running on @Rive 's GPU Canvas, written in Luau and WGSL, living inside the .riv file. Drop in a .glb and it loads, lights, animates and orbits. Every control is a data-bound property, so the whole scene is drivable from a state machine, a timeline, or app code. Nothing is hardcoded to one model. What's in it: • glTF parsing written from scratch — Luau has no JSON library, so the decoder is hand-rolled • PBR shading (Cook-Torrance GGX) with key/fill/rim lighting • Skeletal skinning, 128-joint palette • Rigid node animation with full keyframe interpolation • Orbit camera with per-axis locks • Auto-fit, so any model frames correctly regardless of authored scale • ~40 data-bound properties: camera, transform, material, animation Most of it was built by driving the Rive editor over its MCP server with Claude Code — scripted, not clicked. Runtime support is nearly there. GPU Canvas landed in the web runtime last week. A couple of scripting APIs still need to follow before this can ship to a live site. Here is the Github Repo for Instructions: https://lnkd.in/dAMXQJBR
Like this project

Posted Sep 5, 2026

Built a 3D model viewer inside @Rive . Not a plugin, not an embed — an actual glTF renderer running on @Rive 's GPU Canvas, written in Luau and WGSL, living ...