Video wird geladen...
Video konnte nicht geladen werden
img2threejs 1.5.1 is out 🚀 Checkout: This release introduces a new approach to image → 3D → Three.js. Image → Tripo → img2threejs → reconstructed geometry → Three.js Instead of using the generated 3D model as the final asset, img2threejs uses it as a reference to rebuild the character... show more
117,760 Aufrufe • vor 1 Monat •via X (Twitter)
85 Kommentare

Demo: ⚔️ Also, is now the official website for img2threejs. We’ll be using this site going forward, so the old link is no longer used. 🚀

Here’s the standard prompt for the GLB character pipeline: Just a heads-up: it may not fit your specific character 100%, but it follows the core rules and requirements of the pipeline. Give it a try and feel free to adapt the character-specific details! 🚀

You can also grab the reference images from here. This is a design created by a colleague of mine 🙌

I dont get the value of using the agentic model over the generative model. Looks like Tripo sponsors you but do you have a genuine use case? Agentic and generative modeling have different strengths. I dont get why we would combo them though.

Yep, Tripo is actually one of our sponsors 🙌 And of course their platform provides a really good experience. I’ve been using it myself and found it fits the img2threejs workflow quite well, imo. That said, the pipeline isn’t meant to be tied to Tripo specifically. The idea is to explore how generative 3D can provide a better spatial reference for an agent, while img2threejs focuses on reconstructing that reference into structured, editable Three.js code.

I love img2threejs and congrats for the sponsorship. I know the method is not confined to Tripo. I also know and appreciate you're just pushing the limits of this method. I was just wondering if you actually have use cases in mind where we'd actually need the agentic model despite already having generated a generative one. One could be consistency, for example, for when we are using img2threejs for non-characters and need similarly topologized characters. Btw I also recommend combining Patina textures from by giving your agent the capability to generate images and access fal. That's how I'm using img2threejs for @shatterwake_mmo

Yeah, exactly, I’m mostly pushing the limits of the method right now rather than saying Tripo is required. Consistency is definitely one of the use cases I have in mind. The agentic step can reason about the reference, geometry, materials, and structure together, then turn that into a consistent, editable Three.js asset instead of just accepting the generated mesh as-is. And thanks for the Patina + tip! That’s actually a really interesting direction for the material/texture pipeline. I’ll definitely look into that for img2threejs.

Hi guys, Quick bonus for the img2threejs community 🎁 Our friends at Tripo AI just gave us two promo codes: THREEJSPRO — 60% OFF the first month of Pro THREEJSMAX — 60% OFF the first month of Max Each code is limited to 200 redemptions and valid until Dec 31. Have fun building! 🔥

Awesome, with each version you bring in new, great features. Keep up the great work. And looking forward to that tutorial video.

Thank you so much! 🙌 Really appreciate you following the progress. I’ll keep pushing it forward, and I’ll do my best to get that tutorial out soon!

I really want this to work, but I just can't get it to. Using Sol high and xhigh. Model form Tripo + full reference shots. It says this about my GLB "It is a valid animated mesh, but it is unsuitable as a point cloud for this particular Surface Nets implementation." What now?

banger nick, love your work

Appreciate you! 🙌 More coming soon.

this is so cool

Thank you! 🙌 Glad you think so, there’s still a lot more to push!

Three.js accepta GLB, what's the point?

Yep, Three.js can load GLB directly 👍 But loading the GLB isn’t the goal here. The GLB is only a reference. img2threejs reconstructs it into structured, editable Three.js code and geometry that you can modify, animate, interact with, or regenerate programmatically. If all you need is to display a GLB, then absolutely, just load the GLB directly 😄

Will img2threejs perform same reconstruction from a glb-img2threejs- structured three J's? What if instead of Tripod I'm using Hunyuan3d-2 or trellis?

Yes, that’s the idea. img2threejs doesn’t depend on Tripo specifically. Hunyuan3D-2, TRELLIS, or other image-to-3D models that can output a GLB can be used as the intermediate reference. The better the GLB matches the image, the better the resulting structured Three.js reconstruction should be.

Image → 3D → interactive. The gap between an idea and a usable experience keeps shrinking.

Exactly. And I think the next step is even more interesting: Image → 3D → code → interactive. Once the 3D becomes programmable, the gap between an idea and an actual experience gets even smaller. That’s exactly what I’m trying to push with img2threejs 🙌

Nice! Looking forward to giving this a go!

Thanks Fernando! 🙌 Would love to hear how it goes when you give it a try. Have fun with it!

Looks good 👍

Thanks! 🙌 Glad you like it. More improvements coming!

well if Image → Tripo works, then Image → meshy should also work just as well!?

Exactly! The idea isn’t to be tied to Tripo. Any image-to-3D tool that can provide a useful 3D reference could potentially work, Meshy included. Tripo is just what I’m using in the current pipeline. The interesting part for img2threejs starts after that: using the generated model as a reference to reconstruct editable Three.js geometry.

but how are you using the 3D from tripo? are you exporting the GLB? or just another image/screenshot?

I export the GLB from Tripo and use that as the 3D reference for img2threejs. I’m actually working on a tutorial video showing the whole process right now 😅 The problem is the full workflow takes around 4 hours, so the video is getting ridiculously long lol. I’m thinking about splitting it into a few shorter parts instead.

Four hours is the honest number. I would watch a 12-minute cut of the ugly middle: GLB out of Meshy or Tripo, what you throw away, what survives Unity.

Honestly, that’s probably the most useful video to make 😄 I’ll consider doing a 10–12 min “ugly middle” walkthrough : GLB generation → what img2threejs throws away/keeps → final asset in Unity. The messy parts are where the real workflow is.

Much better flow!

Thanks Timothy! Yeah, this flow feels much closer to where I want img2threejs to go. Still a lot to improve, but we’re getting there! 🚀

Holy shit dude this is amazing. If you can get animations to work this changes everything. Whats the bottle neck do you think on animations?

Haha thank you! 🙌 The biggest bottleneck right now is getting a consistent rig/skeleton + clean skin weights from the generated geometry. Once that structure is reliable, animation itself is much easier. That’s a big part of what I’m working on next.

do you think we will able to procedurally/auto animate pretty soon? One of the biggest things lacking IMO for game design at a high level mixed with what youre working on already

Absolutely — I think that’s one of the most exciting directions for this. Once the character is represented as structured, semantic code instead of just an opaque mesh, procedural/agent-driven animation becomes much more achievable. That’s definitely a direction I want to explore next 👀

Oooh will give this a play later 🤩

Awesome! 🤩 Would love to hear what you think once you’ve had a chance to play with it. Have fun!

Tell me again, what is wrong with the animation? Lol. Thanks, just what I was looking for today :D

😂 Haha, glad it was what you were looking for! The animation is still a bit rough in some cases, but that’s exactly why I’m pushing the pipeline further. Have fun with it!

A flat image turning into real 3D geometry is a useful pipeline.

Exactly! And now the fun part is that the resulting 3D isn’t just something you can view, it becomes structured Three.js code you can actually modify, animate, and build on top of.

Thanks Nick, will check it definitely. I'm trying to create 3d assets for games, local and free is my aim, this will definitely help.

Absolutely! 🙌 Local + free is a big part of what I’d love to make possible with img2threejs. Hope it helps with your game assets. let me know how it goes!

Wow this is so cool

@grok what does it mean image to three js? Is there no AI layer in the middle?

@grok There is 😄 img2threejs is actually an agentic workflow. You give the agent a reference image, and it analyzes and reconstructs it into structured, editable Three.js code. So “image → Three.js” describes the input and output — there’s definitely AI doing the work in between.

@grok Yup. Got it. And that makes sense. In terms of compression efficiency, is storing the 3d model as js code more efficient than glb? Or faster to render?

It depends. JS isn’t automatically smaller or faster than GLB. GLB is usually better for compact binary geometry and loading, especially at scale. The interesting part of img2threejs is different: the model is procedural/editable code, so you can modify geometry, materials, variants, and behavior without storing a separate baked mesh for every variation. For highly procedural assets, that can be much more efficient overall.

tripo as an intermediate still makes unseen surfaces unreliable in reconstructed geometry

Yep, absolutely. Tripo helps provide a much better spatial reference, but it doesn’t magically solve unseen geometry, if the source is a single image, those surfaces are still inferred. That’s why I see the GLB as additional evidence, not ground truth. There’s still plenty of room to improve this part of the pipeline.

Lets gooo! Thanks for continue building and pushing forward!!!

Thank you Daniel! 🙌 Really appreciate the support. Still a lot to build, but we’re getting closer to the vision with every release

hey nick sorry to bother you im a little scared of using img23js cuz last time I tried one of the python scripts AI used wiped most of my C drive. idk what happened exactly cuz there was nothing to look at after it, but I was using cursor with default permissions ( no auto allow)

Oh wow, that’s scary 😅 img2threejs definitely shouldn’t be touching or deleting anything on your C drive. If you still have the Cursor chat or the Python script it generated, send it over and I’ll happily take a look!

I tried reaching out to cursor to grab the chat so that I could show it to you ( it happened 3w ago ) but they said they don't have it sadly. Sorry that I coudn't be of any help. Just wanted to hint that it happened but not crying about it or anything (Y)

No worries at all! 🙌 And thanks for letting me know, I really appreciate the heads-up. If you ever run into anything like that again, please ping me and I’ll be happy to investigate it with you.

Love that you're completely open sourcing this. I've been trying a similar workflow for my game that's based on building/fixing objects and this could come in really handy. I'll try it and provide as much feedback as I can! Thanks Nick 🔥

Thank you! 🔥 Really appreciate that. A game focused on building/fixing objects sounds like a perfect use case for img2threejs. Definitely give it a try and send any feedback my way — it’ll help shape the next iterations!

time to use my tokens 😋

Haha yes 😍time to put those tokens to work! Let me know what you build with it

so just to confirm, we generate the 3d item in tripio first then feed that into img2threejs right? is the result better if we already have the 3d item generated in glb and feed that in img2threejs?

Yep, exactly! 🙌 You can generate the GLB with Tripo first, then give both the original image + GLB to img2threejs as references. And yes ,if you already have a good GLB, you can skip Tripo entirely. The better the GLB matches your image, the more useful it is as a 3D structural reference, so the reconstruction usually has a much better chance of coming out right. Tripo is just one option: Hunyuan3D, TRELLIS, etc. can work too. The goal is the 3D reference, not the specific generator.

Ok thanks I need to get my img2threejs to look like your demos in the UI

What do you use to animate?

For this one I’m using the procedural structure generated by img2threejs and driving the animation from Three.js code. Animation is actually one of the areas I’m experimenting with a lot right now, there’s still plenty more I want to do with it

Yeah. I am going to try to give img2threejs a try. I have been doing Tripo to blender and Mixamo for animations. I don't really know how to animate so that part is pretty tough for me.

Nice! That’s actually a great use case to try with img2threejs. Animation is still something I’m actively exploring too, so I’d love to see how your Tripo → Blender → Mixamo workflow compares. Give it a try, and if you get stuck on the img2threejs side, just ping me, happy to help 🙌

I hit you up 👍

Nice jump using Tripo as a reference and outputting editable Three.js geometry feels like a solid step toward more flexible pipelines

Exactly! 🙌 The goal is to make the generated 3D model a reference rather than the final asset, then turn that into something fully editable and procedural in Three.js. Lots more possibilities from there.

i can imagine a whole world of games being built starting from here! But that is just the start, and nowhere the end of the possibilities this has! Great job sir.

@aliuagon_ Absolutely! 🔥 I think games are just one of the first obvious use cases. Once you can turn visual references into editable, procedural 3D code, there are so many directions this can go. We’re only getting started 🙌

I'm gonna witness this grow as one of the first users. Keep shipping sir! The sky is the limit here.

@aliuagon_ Haha you’re officially one of the OGs now 😂 Really appreciate you being here this early. I’ll keep shipping. let’s see how far we can take this thing together!a

🚀

Tripo meshes look clean in a viewer but drop into BufferGeometry with non-manifold faces that corrupt normals without throwing an error. Using the model as geometry reference instead of final asset sidesteps that entire class of problem.

Exactly. That’s one of the interesting benefits of treating the generated mesh as a reference rather than the final asset. We can take the spatial information we need, then reconstruct the geometry on our side instead of inheriting every topology/normal issue from the source mesh. Great point!

This is tight! Will try it first thing tomorrow!

Thanks! 🙌 Let me know how it goes, would love to see what you build with it!

Looks very promising! Going to try very soon 😀

@artanisjr Awesome! 😀 Can’t wait to see what you build with it. Feel free to share the result or ping me if you run into anything! 🙌

Please add blender support next

Okay bro 😂 Blender support is definitely on my radar! I’ve got way too many requests piling up right now, but I’ll get there. Hopefully I can ship something soon
