Creating a Dog Run Game with Tripo-DG and Three.js

How I generated a 3D model of my dog using Tripo-DG, rigged it in Blender, and created a run game with Three.js.


I generated a 3D model of my dog using AI, rigged it in Blender, and created a run game using Three.js.

Generating the 3D Model

I generated the 3D model of my dog using Tripo-DG. It's a service that can generate high-quality 3D models from text or images.

The generated model had separated polygroups (when checked in object mode, it was divided into multiple parts). If I rigged it as is, tears would appear when moving it, so the remeshing process described later was necessary.

Adding Bones and Rigging

To animate a 3D model, you need bones (skeleton) and a rig (linking the skeleton to the vertices).

Trying Auto-Rigging

I tried several auto-rigging services.

  • anything.world — A service that supports auto-rigging for quadruped models. You can even input that it's a Pomeranian. However, I gave up this time because an error occurred during generation.
  • AutoRig Pro (Paid Blender plugin) — There were reports that auto-rigging didn't work well even when trying to add dog bones to Eevee (Pokémon), so it was difficult for a model with unique proportions like my dog.

Using Rigify

In the end, I decided to manually rig it using Blender's Rigify.

Video I referred to:

Since my dog's proportions are significantly different from a typical dog's skeleton (large head, short legs), adjusting the flesh was particularly difficult.

Remeshing and Baking

To solve the issue of the Tripo-DG generated model having separated polygroups, I performed remeshing.

  1. Remesh to integrate the scattered parts into a single mesh.
  2. Retopologize to create a low-poly geometry suitable for games.
  3. Bake the texture onto the low-poly geometry.
    • Create new material → Create new texture image → Unwrap with Smart UV Unwrap → Bake with Diffuse.

Note that remeshing deletes the original UV map, so you need to set it to reference the material of the original model before baking (using Transform along normals).

Reference: https://redhologerbera.hatenablog.com/entry/2021/04/11/195700

For the running animation, I referred to assets like AnimBox that can utilize dog rigs.

Three.js Game: Fuwa Run 2025

https://fuwa-run.vercel.app/

Developed with Vite + Three.js and hosted on Vercel. For parts where my understanding of the scene structure around Vectors was shallow, I supplemented it with Vibe Coding using Gemini 2.5 Pro.

1st Proto: Simple Scene


Summary

While generating the model itself takes only a moment with AI, the most time-consuming part was remeshing, retopologizing, baking, and rigging to bring it to a quality usable in a game. On the other hand, game logic and scene construction with Three.js have good synergy with generative AI, allowing me to build a prototype quickly.

In the future, I plan to implement a Kagurazaka map and add a joystick UI for mobile support. Ø