Inspiration
Being a blockchain enthusiast and a 3D printing hobbyist, we (in a previous brainstorming session) thought of combining both ideas where a NFT is printed after burning the token. This can also act as a physical passport for NFTs if the burn feature is modified to allow one time print without burning the token itself. The idea first emerged on a brainstorming session with friends, but then when I saw the nventive blockchain related challenge, this seemed very relevant hence I started building. I want to thank my dear friends Memo, Andre, Brandon and Dre who participated in the brainstorming. My dear friend Dre passed away shortly after our brainstorming session. Rest in peace Dre.
What it does
When an artist mints a NFT, the buyer has the option to burn it, and upon burning, a command is sent to their 3D printer to print the NFT object.
How we built it
When a minted NFT token is burnt, the smart contract sends a command to the node.js server which is connected to the Octoprint API (an open source Raspberry Pi OS that connects 3D printers to the WIFI) using the POST job command. Octo print then executes the START command which starts printing the object. It is important to mention that the printing file needs to be in G-code as sending a command to print a STL file that would automatically convert to G-code was out of scope for the limited time of this hackathon. Once the START command is received by the Raspberry pi, the 3D printer starts printing the g-code file that was pre-loaded in Octoprint.
Challenges we ran into
The Octoprint was made to connect to a private network hence setting up the SSH for the raspberry pi to be able to receive commands from an node.js server was challenging. We used the Authorization key from Octoprint in POST command for job, and in a way forced the raspberry pi's Octoprint to receive the command.
Accomplishments that we're proud of
Strangely the hardest part of this project was the simplest part which was sending the print API to the Octoprint as mentioned in the challenges section, but I am proud of finally getting it done.
What we learned\
I learned a lot about how APIs work. I am a mech eng student so I have been on a long self-learning journey to learn coding and I never truly grasped the concept of APIs until I head into this challenge. I learned how to use POST job command to send job APIs to the octoprint, but this is not limited to only octoprint, it can be used to send API commands to any other app.
What's next for Print on Burn
First the G-code converter issue need to be addressed, so the NFT STL can be automatically converted to G-code for printing. Second an interesting feature can be added to the project where the NFt is not burnt but a QR passport is 3D printed to represent a physical object for ownership of the NFT.
Log in or sign up for Devpost to join the conversation.