Shap-E: Generate 3D objects conditioned on text or images
github.com
github.com
I have previously asked dall-e to draw me steampunk watch-like gizmos, selected the prettiest and then I went and carved it out of wax. And right now I'm 3d modelling a copper owl jewellery design dreamed up by Midjourney.
It is a really exciting exercise because it makes me think about what do I like about the image, what is the "essence of it". It is also stretches my maker muscles because when I design things for myself from scratch I always keep in mind the constraints of my tools and techniques. But of course the AI has no such compunctions. It just draws something pretty, manufacturability be damned.
Simple objects are surprisingly good. Examples of a viking helmet below:
-- https://phasellm.com/static/img/helmet-01.png
-- https://phasellm.com/static/img/helmet-02.png
More complex objects, e.g., "a viking" are harder though you can clearly see what the model is trying to do (cape, sword, person, etc.)...
-- https://phasellm.com/static/img/viking-01.png
Maybe more iterations of the model could work. I'm sure it's only a matter of time before this gets much better, more details, etc.
https://github.com/openai/shap-e/blob/main/shap_e/models/dow...
The code license in such cases would not extend to binary blobs downloaded from the Internet. And the code is basically useless without the blob.
https://salsa.debian.org/deeplearning-team/ml-policy/ https://deepdive.opensource.org/podcast/why-debian-wont-dist...
https://opensource.stackexchange.com/questions/1720/what-can...
I don't know if the same is true of blobs, and I also haven't checked whether the blobs are licensed anywhere on their site.
We are barely able to generate 2D 1080p images, without artefacts using diffusion methods. How much more complex is the jump to production grade 3D?
As someone creating re-usable 3D product models on Polymock @ https://polymock.com the bigest issue for me, is that you want your models to be editable. 3D modellers want to post-process and add tweaks to existing 3D models. Current AI generators lack this layering structures.
What I actually want, is a 3D generator for textures / materials. It should be a much simpler task for current AI.
At the moment, the state of 3D generators is slowly ripening for indie game developers. I'm sure that in the near future, the models will be high-enough quality to generate a basic character set.
Others have mentioned it, but I think NVIDIA has an edge in 3D synthesis & rendering. OpenAI is arguable the leader in consumer text-transformers - I wonder the goal for releasing this POC (I don't think they will allocate any serious resource here)
^ Single file Jupyter Notebook for Text Into:
(1) Gif (derived from NERFs I suppose)
(2) .PLY
How many more steps have to occur between these models and me printing them?
If these aren't in SDL, but are some format Blender can open, then Blender can turn them into SDL. It looks from the description like it's compatible with Blender.
0-https://github.com/openai/shap-e/blob/main/shap_e/examples/s...
Shouldn't be too hard. Based on the code of the examples it seems it can output polygonal meshes in ply format. Either your slicer natively supports that, or you can use something (for example blender) to convert the ply to a format your slicer supports.
What can go wrong if the model "looks okay" but have some subtle geometric issue (like if it has a missing face, which makes it non-manifold or non-watertight) Nowadays many slicers have tools to heal such problems, but there can be dragons that way.
I looked for an example object in their repo and found this one: https://github.com/openai/shap-e/blob/main/shap_e/examples/e...
If that is representative it is a very nice clean geometry. I have sliced it with prusa slicer no problem and I could be printing it within a minute of downloading it if I would need a 3d printed cactus in my life.
> I just got a 3D printer but I'm a total noob.
How noob you mean? If this would be literally your first print I would recommend printing first a sample file which came with your printer. (just to make sure everything is okay with the printer itself) But as a second print you can totally try to print one of these of course. Just don't give up the hobby if something goes wrong :) Something always goes wrong.
I successfully printed a hollow cube yesterday, my first ever print, and failed on about 6 attempts at a "mario ring" file. It's PETG and I'm just fiddling with settings, getting a lot of stringing etc.
Anyway, very new, but I'm prepared for the learning curve. I'm a good debugger, and I don't give up easily, so hopefully that'll carry through to the printing.
Mind you, i only bought filament from Prusa and AtomicFilament, two very respectable manufacturers. Had zero issues with their PLA, and it looked beautiful. With PETG, no matter how much i tried adjusting live-z levels or playing in PrusaSlicer with print speed levels, temperature, layer height, etc., it all would mess up at some point. Out of 5 prints of the same object, I finally managed to get one great print out of PETG. But when I tried printing another one, I would start having various issues again and would have to adjust things again in hopes of eventually getting it right. I just went back to PLA and had zero issues at all since then.
Even though I am aware of PLA disadvantages compared to PETG, I simply realized that for my purposes, they didn't matter nearly as much as consistency and ease of good prints.
Thanks!
I'm also going to re-run the cube to see if the same settings work a second time, prompted by your comment. I've really only had failures with the one model.
After many years of falling out of love with 3D printing, PETG helped me fall back in love with it.
I heard that PETG is more sensitive to humidity from the air than PLA. So maybe that is the difference? Maybe you live in a dryer climate and the person you are responding to has more moisture in the air?
For additional context, my main issues with PETG were prints detaching from the printing bed midway through (but i fixed that one by adding brims to my prints + using printing glue on the bed, and a textured sheet would help with that even more), and a more major one was the nozzle getting strings and eventually the material sticking to it and accummulating to the point of the nozzle getting clogged on the outside/unusuable (recovering from which would require aborting the print and doing the 10-min long cleaning ritual with heating up, rubbing alcohol, brushes, etc).
PETG does tend to curl and stick to the nozzle, that's true. I find the main culprit is if it oozes while the printer is warming up. While I'm waiting for the printer to reach temperature and the print to start, I make sure to remove any filament that might be dribbling out the nozzle using pliers or a wire brush until either the print starts or the nozzle pressure decreases enough for the oozing to stop. As long as the nozzle is clean when the print starts, it shouldn't have an opportunity gather up more material during the print. On the other hand, when 3D printing, getting off to an imperfect start will always tend to snowball toward a terrible end.
Good luck!
> While I'm waiting for the printer to reach temperature and the print to start, I make sure to remove any filament that might be dribbling out the nozzle using pliers or a wire brush until either the print starts or the nozzle pressure decreases enough for the oozing to stop.
Yeeeeppp, been doing that exact same thing, and it was working quite well. But not going to lie, I felt a bit destroyed on the inside when I still got the nozzle clogging issue about 10 hours into a 16hr print I had going. I wrote it off as a one-off, but I have been hesitant to try another 16hr-long print with PETG since then (until i at least get the textured sheet set up).
Thanks for your comments in this thread btw, they definitely highlighted quite a lot of issues I had and potential workarounds.
And then there's durian.