Inspiration
The day before the start of the Constellation Lab's I thought to myself, what if I connected someone's personal AI chat-bot to a modern 3D printer?
Seeking to explore questions like:
what sort of avatar would a digital being create?
how would it visualize its own face?
what sort of real world objects would an AI like to print?
I will return to these exploratory questions at the end of the project but with the Hackathon starting I had to move to action and create some sort of digital system or platform for this to manifest. As an avid 3D printing enthusiast I opted to automate away the majority of what is the complexity with printing an object, the: modeling and slicing of a 3D object as well as the print settings and technicalities of 3D printing such as layer height and infill. This would be the first step towards actually having a system where the questions I was asking could even be asked.
As such the proof-of-concept was clear, I needed to connect a modern 3D printer to some software which could do this manipulation and take any text or image provided by a user and create a 3D printed object from it. Luckily the Espronceda Institute of Arts & Culture already owned a Bambu P1S 3D printer which I could use for this project and they supplied us with ChatGPT 6 Astra access. This was my first time ever using AI for coding and also interacting with this 3D printer brand, being more of an open-source and Prusa enthusiast myself (tips fedora hat) and the first step was to surf the web wondering 'has anyone done this already?' - that is when I came across Kiln3D which is open sourced so I could use the code in my project as a starting place.
Do go and check out the Kiln3D service from their website, much gratitude to codeofoaxel and Hadron Labs Inc: https://www.kiln3d.com
So now I know where to start and began planning out the workflow an object would take through the system I wanted to build, writing up specifications as well as breaking down the workflow into 7 steps and preparing agents.md and skills.md for sub-agents that would specialize in each of these workflow sub-processes: docker-orchestrator, webapp-agent, user-intake-handler, MCP-coordinator, model-builder, print-operator, telegram-bot. Having had some experience with Docker and Python I leveraged my knowledge to also prepare a docker-compose.yml as well as multiple .env files so that the project I would be buillding could be reproducible and editable by anyone else.
24 hours later
I had a locally hosted webapp that showed the status of the printer, a print queue, and various input methods for how to send text or images to the 3D printer - all running on an old laptop using Docker, with the only AI interaction being the generation of an image from a text prompt - everything else is handled by raw Python. Using Codex and these sub-agents I got a first 3D print working on the Bambu P1S with only the text input of: print a 5 x 5 cm tile with the embossed logo of the Espronceda Arts Center in Red PETG - and you can see the result in the image gallery of this devpost.
It was awesome, I only entered text and in a handful of minutes a sliced object was being served to the 3D printer infront of me, it's screen lit us and the extruder started moving. It felt like magic. The next day I placed the 3D printer, laptop and an additional monitor within Espronceda's gallery space and arranged some EL-wire lights and decorations for the installation. I had hoped to be able to implement in the code the final step of the worfklow, a dedicated Telegram bot which would allow anyone visiting the exhibition from sending a text prompt, image, or invite their AI agent to submit their 'avatar' to be printed. This remains one of the many feature requests and future work I wish to do with the code of this project.
What it does
Automagically generates an image from a text prompt, or takes an image that is submitted, with which it generates and validates a 3D object of that image as a 10x10 cm tile, then slices that object into a 3D printable state and sends it off to a connected 3D printer on the same WiFi network. Set up as an interactive installation within an art gallery.
How I built it
16 hours of Codex using ChatGPT 6 Astra as a coding buddy, using 7 sub-agents, to create a Docker project with many Python scripts that handle the individual steps of the workflow. System checks whether there is connected 3D Printer on the network and handles the print job and monitoring automatically.
Challenges I ran into
First day of coding ended up being a waste, had to re-write the workflow to add steps and integrate libraries that were needed for the Bambu to speak with my system. Once I had refined the workflow and specification that coding part was not an issue. I faced meatspace issues with connecting the 3D printer to my system, since I did not know the WiFi network I was on was a guest network.... when in doubt, always check networking... it is always networking... Last challenge was lack of time to implement the Telegram bot and trying to have multiple color choices for the user as the Bambu had a multi-filament AMS system installed on it, both things that will be future improvements of the code.
Accomplishments that I'm proud of
The whole damn thing. I will continue working on it and shall be releasing the code on Codeberg with an open license - feel free to fork and play with it: https://codeberg.org/manifest-2-meatspace/code
What I learned
Give yourself more time to make a project specification clear before starting sometimes helps, always check the networking and double-check it, never stop trying new things and prototyping cool tech.
What's next for Manifest 2 Meatspace
Working on the code improvements on Codeberg, releasing it as open source and hopefully working with all the models and brands of different 3D printers the Kiln3D project also supports.
Re-running the installation at future art galleries and maker events, interactive art is cool.
Getting the Telegram bot integration working and asking friends to point their personal AI agents to it to see if we can get one of them to Manifest 2 Meatspace their avatar or face. Seeking to explore questions like:
'''what sort of avatar would a digital being create?'''
'''what body shape or species would it adopt?'''
'''how would it visualize its own face?'''
'''would it be influenced by the conversation and memories of the conversations with its user?'''
'''what sort of real world objects would a digital being like to manifest?'''
'''Could we get an agent to autonomously use the 3D printer to generate gifts for its user?'''
'''Could the models understand the material reality it is manifesting objects into?'''
'''What tools would a digital being manifest in the physical world, and for what use?'''
This project was manifested into existence at Constellation Labs, Espronceda Institute of Art & Culture
Log in or sign up for Devpost to join the conversation.