Reze Studio addresses a persistent pain point in animation tooling: how to maintain smooth, responsive playback and precise multi-axis drag interactions in a complex editor UI built with React. Animation curve editors often struggle when React’s render cycle collides with high-frequency frame updates and user input, causing janky or sluggish interfaces. Reze Studio tackles this by combining WebGPU rendering with a carefully architected React external store pattern and selective render updates, letting you hand-key .vmd animations for MMD models entirely in the browser.
What reze studio is and how it works
Reze Studio is a browser-native animation curve editor specialized for MikuMikuDance (MMD), a popular Japanese 3D animation tool. It targets the editing of .vmd animation clips with professional features like a timeline, dopesheet, and per-channel Bézier curve editing.
Built on Next.js 16, React 19, and TypeScript, its stack includes a custom reze-engine that handles WebGPU rendering. This engine lets it perform GPU-accelerated drawing of curves and timelines directly in the browser, avoiding heavy CPU workloads and enabling fluid interactions on devices ranging from iPads to desktops.
The repo also integrates Ammo.js for physics simulations and inverse kinematics (IK) solving, which are essential for realistic MMD animations. The entire tool runs client-side — there is no server component — which means all data stays in your browser, and you can import/export PMX models and VMD animation clips to and from the app.
Architecturally, the codebase uses sophisticated React performance patterns. It splits external stores to separate document state from transport state and leverages useSyncExternalStore with selectors to minimize unnecessary React renders.
The React performance architecture that keeps animation smooth
The standout technical feature of Reze Studio is how it manages React state and rendering to keep the UI responsive during demanding animation tasks.
Animation editors require frequent frame updates (high-frequency requestAnimationFrame loops) and complex drag operations involving multiple axes. React’s render cycle, if naive, can cause frame drops or UI stalls because it can’t keep up with the rapid state changes.
Reze Studio’s architecture solves this by introducing several layers of optimization:
Split external stores: Instead of keeping all state in a single store, the state is split into separate external stores for document state (the animation clip data) and transport state (playback controls). This separation allows more granular subscription and update logic.
useSyncExternalStore with selectors: React hooks subscribe to these external stores with selectors that pick only the relevant slices of state, minimizing re-renders to just what changed.
Hot paths bypass React: For operations like playback and drag interactions that happen at a high frequency, the code mutates refs directly, bypassing React’s render cycle. React is only notified on mouse release or commit, avoiding intermediate renders that would slow down the UI.
Snapshot-bridged undo system: Instead of recording undo history mid-drag (which can corrupt history), the system captures immutable snapshots of the animation clip only at commit boundaries. This keeps undo/redo reliable and performant.
This combination of patterns is worth understanding if you deal with high-frequency UI updates in React. It balances React’s declarative model with imperative performance hacks where necessary.
Quick start
- Open reze.studio — a default Reze model and sample clip load automatically, so you can start editing right away.
- (Optional) Load your own model:
File → Load PMX folder…and pick the folder containing your.pmx(textures must sit next to it). - (Optional) Load an existing clip, or start from scratch:
File → Load VMD…to import an existing.vmd, orFile → Newto clear the timeline and key the animation yourself on whichever model is loaded. - Play it back: press
Spaceor click the play button. - Save your edits:
File → Export VMD…. There is no server — nothing leaves your browser, so export before you close the tab.
This workflow emphasizes that you can get started immediately without setup. The browser-native, client-side nature means no installation or backend configuration.
Verdict: who reze studio is for and what to expect
Reze Studio is a niche but well-crafted tool for MMD animators who want a modern, high-performance browser-based editor for their animation curves. Its use of WebGPU and Ammo.js physics makes it capable of handling realistic animations with inverse kinematics.
From a developer perspective, it’s a compelling case study in advanced React performance patterns applied to a demanding interactive UI. The split external store approach combined with selective subscriptions and ref-based bypassing of React renders is worth understanding even if you don’t work in animation.
Limitations include the fact that it is specialized for MMD formats (.vmd, .pmx), so it’s not a general-purpose animation editor. Also, since it runs entirely client-side, very large models or clips might hit browser resource limits.
Overall, if you want to explore a high-quality, WebGPU-powered timeline editor with a clean React architecture, Reze Studio is worth checking out. It shows how careful state management can overcome React’s render cycle limitations in real-time interactive apps.
Related Articles
- shadcn/ui: building your own customizable React component library from source — shadcn/ui offers customizable React components by providing source code for deep integration and modification. It’s a fo
- Flowise: visual low-code AI agent builder with a modular TypeScript monorepo — Flowise offers a visual drag-and-drop low-code platform to build AI agents and LLM apps, with a Node.js backend and Reac
- Crawlee: a TypeScript library for stealthy web scraping and browser automation — Crawlee is a TypeScript library for web scraping and browser automation with human-like stealth. Supports Playwright, Pu
- CopilotKit: Building dynamic agentic UIs with the AG-UI protocol — CopilotKit introduces the AG-UI Protocol, enabling AI agents to dynamically render and update UI components in React app
- Navigating NixOS and Flakes with a community-driven beginner’s guide — A practical look at the “NixOS & Flakes Book,” an unofficial, community-driven guide demystifying NixOS and its experime
→ GitHub Repo: AmyangXYZ/reze-studio ⭐ 267 · TypeScript