Picture of 3D Printed Record

In order to explore the current limits of 3D printing technology, I've created a technique for converting digital audio files into 3D-printable, 33rpm records and printed a few functional prototypes that play on ordinary record players.  Though the audio quality is low -the records have a sampling rate of 11kHz (a quarter of typical mp3 audio) and 5-6 bit resolution (less than one thousandth of typical 16 bit resolution)- the songs are still easily recognizable, watch the video above to see the process and hear what the records sound like.  Also check out my laser cut records, made on wood, paper, and acrylic.

This past year I've been posting a lot of audio projects, specifically, I've been experimenting with using relatively simple tools and techniques and very little memory to approximate and recreate digital audio signals.  A great example is my Arduino Vocal Effects Box, where I used an Arduino to perform realtime pitch-bending on an incoming audio signal.  Through these projects, I've learned that audio is a very resilient medium, it can take a fair amount of abuse (in the form of distortion and compression) while still maintaining most of the integrity of the original sound.  The key is as long as you loosely approximate the overall shape of an audio signal, the output will sound reasonably recognizable.  We have evolution to thank for this: as we hear audio, some complicated processing goes on in our brains that makes us very good at ignoring noise and focusing on the important pieces of information coming through.  We can work off of relatively few cues (sometimes these even include contextual or visual cues) to piece together mangled or noisy audio and make sense of it; this is how we are able to focus on one voice in crowded room or decipher a message sent over a cheap walkie talkie. 

This project was my first experiment extending this idea beyond electronics.  I printed these records on a UV-cured resin printer called the Objet Connex500.  Like most 3D printers, the Objet creates an object by depositing material layer by layer until the final form is achieved.  This printer has incredibly high resolution: 600dpi in the x and y axes and 16 microns in the z axis, some of the highest resolution possible with 3D printing at the moment.   Despite all its precision, the Objet is still at least an order of magnitude or two away from the resolution of a real vinyl record.  When I first started this project, I wasn't sure that the resolution of the Objet would be enough to reproduce audio, but I hoped that I might produce something recognizable by approximating the groove shape as accurately as possible with the tools I had. 

In this Instructable, I'll demonstrate how I developed a workflow that can convert any audio file, of virtually any format, into a 3D model of a record, and how I optimized these records for playback on a real turntable.  The 3D modeling in this project was far too complex for traditional drafting-style CAD techniques, so I wrote an program to do this conversion automatically.  It works by importing raw audio data, performing some calculations to generate the geometry of a record, and eventually exporting this geometry straight to a 3D printable file format.  Most of the heavy lifting is done by Processing, an open source programming environment that's often used for 2D and 3D graphics and modeling applications.  Here's a basic overview of my Processing algorithm:

use raw audio data to set the groove depth- parse through the raw audio data, this is the set of numbers that defines the shape of the audio waveform, and use this information to set the height of the bottom of a spiral groove.  This way, when a turntable stylus moves along the groove it will move vertically in the same path as the original waveform and recreate the original audio signal.
draw record and groove geometry- A 3D model is essentially a list of triangles arranged in 3D space to create a continuous mesh, use the data from the last step and some general record parameters (record diameter, thickness, groove width, etc) to generate the list of triangular faces that describes the record's shape and the detailed spiral groove inscribed on its surface.
export model in STL format- the STL file format is understood by all 3D printers, export the geometry calculated in the last step as an STL file.  To get Processing to export straight to STL, I used the ModelBuilder Library written by Marius Watz (if you are into Arduino/Processing and 3D printing I highly recommend checking this out, it works great).

I've uploaded some of my complete record models to the 123D gallery as well as the Pirate Bay.  Check Step 6 for a complete listing of what's there and what I plan on posting.  Alternatively, you can go to Step 7 to download my code and learn how to make printable record models from your own audio.

Special thanks to Randy Sarafan, Steve Delaire, Arthur Harsuvanakit, Phil Seaton, and Audrey Love for their help with this project.

Here's another video that gives a great overview of the printing process and shows the printers at work:

Remove these adsRemove these ads by Signing Up
1-40 of 298Next »
agouiller2 years ago
Hi Amanda ! This is a really amazing work you made here ! Congratulation !
I tried to make my own 3D model with processing but I have some trouble with step 10. "Change the name of the import file in the Processing sketch to your txt file name: String filename = "your_file_name_here.txt";"

Should we write "String filename = "your_file_name_here.txt";" in the text editor of Processing or make file>open and open the .txt file ?

Thanks in advance for your advices !
amandaghassaei (author)  agouiller2 years ago
cool, glad to hear you're messing with the code! I just changed that line to whatever the name of my file was. so if I had a file called daftpunk.txt, I changed the line to read:

String filename = "daftpunk.txt";

does that make sense?

Hello Amanda - I understand this Question was answer 2 years ago - but here I am asking the same question.

I have created the "myfile.txt" file through Python programming. But now trying to "import the data within 'myfile.txt' file" into Processing, and then also where should I be typing "String filename = "myfile.txt"; ... Everytime I run Processing, all I get is a Grey 'java' box appear with nothing happening?

Any suggestions you may have?

amandaghassaei (author)  daniel.cvetkovski.7911 minutes ago

do you see processing printing something like "drawing groove 1 of 100"? sometimes it takes a while to process, let it sit for a few minutes.

I received an email today from someone asking me about how far I managed to go with replicating Amanda's process, so I thought I'd share my experience in more details.

Note that this experience below occurred in December 2014.

My goal was to try print a 3mn song on 1 side of a 12 inches vinyl and see what is the best quality and output I could achieve, noticing that it has been already more than 2 years since Amanda did her project, so I assumed that the technology would have progressed rapidly.

Amanda's instructions and provided programs help you generate the binary file, then create a 3D model (STL file) for a one sided vinyl with that song on it (eq'd specifically for vinyl previously as per the video). At this stage, I don't know if you can even generate a two sided vinyl STL model but this didn't matter to me for that experience.

I downsampled the file to 12hz as per her initial instructions and default settings. The outcome was a file that was 700MB. Generating this file alone requires HUGE amount of processing power. Note that I'm using a Mac Book Pro with 16GB of ram, solid state drive and a very powerful processor. It was nevertheless a painful process for the computer to generate the file. See attached an image of the model. You'll note that the entire surface is not covered, which I couldn't quite figure out why. I assumed that if it did take the entire width, the grooves would be a be bigger and therefore more tolerant to the level of precision currently available via 3D printing.

I then tried changing the downsampling rate to something higher (I started at 24hz), so I could get to a quality closer to what I'm after (i.e. that can be released). It looked something like this:

Unfortunately, the file couldn't even get generated. My computer would hang permanently. That wasn't even trying 44hz which is what I was ideally after...

To note: the output STL file had dimensions for X and Y initially rendering in mm instead of inches for some reason so something to keep an eye out on if you try that technique using Amanda's program (unless it had to do with the program I used to render the shape - I then had to update the dimensions manually to the equivalent in mm).

I stuck to my 12hz downsampling rate then and contacted the most advanced 3D printing company in Melbourne I could find ( They had by very far the best machines I could find on the market for once off printing. I figured this would provide me already with a significant improvement of quality from what Amanda had produced.

The machine used was SLA Flex Printer with XHD 0.050 mm layers. Resolutions were uniform on all 3 axis, XYZ with all parts having an accuracy of 0.001 – 0.002 inch per inch of part dimension. This was by far the best printer I could find. The material used was 'Accura Xtreme'.

Unfortunately, the machine and vinyl would break before it could be fully printed, the file being far too large. Files are generraly a few dozens MB at most, and Amanda herself mentions that 300MB is already pushing it.

Doing some further research, I then thought that the model may be using a lot of polygons which are not required to print all the details. I therefore asked Amanda if she thought we could use a technique called decimation to remove useless polygons and therefore make the file lighter, but she confirmed that the program she created was pretty efficient. Considering how precise vinyls are in terms of geometry, this makes perfect sense.

Note that the price quoted to me was about US$250 for 1 copy (price goes down obviously as you order more). Copy of the quote attached.

As of today, there therefore doesn't seem to be a way to print even one single song in a decent quality. The song I used was just below 3mn and in mp3 format.

I'm not sure whether there are elements I could have tweaked to change the output (type of printer or material used, settings in the file), but it seemed that as of early 2015, we were still a long way to being able to 3D print vinyls from the comfort of our home, or as an alternative manufacturing process to the vinyl plants (which was the main goal of my investigation here).

If anyone has tried similar experiences and maybe had better outcomes, I'd love to hear about it.

Cheers, Charly

surgelata1 month ago

Dear Amanda, I'm sorry for my stupid answer...
I understand all the steps...
But I did understand how I can print the vinyl... in a generic 3D print shop?
Which file I have to bringh there?
Thank you so much.

my4pop11 month ago

Very nice liked. I hope you the further development.

It’s really cool to kind of push the
technology and see what you can get out of it. I’ve got
a bunch more that I want to do.


Hello Amanda!

I represent a band that wants to talk with you about your 3D printed vinyl concept. They want to release plans for people to print their new album. I'd love to have a quick chat about how feasible this may be and if you'd ever be interested in working with us? All the best to you.

Vance Anderson

Wow I never thought you could do this with laser printing. And you're right, the songs are easily recognisable. This is pure genius. The sound from your printed record actually sounds like an old school record. I mean you can actually create a record nowadays and you don't even need the same material as that of classic records! I'm truly impressed.

3D printing is amazing. It's the first time I see something like this.

I'm not sure that i understand this fully, but well done anyway

Just so i've got this right, we will be able to print our own vinyl's and add our own music to that vinyl? if that's right, then that is amazing!

Yes RobertGoldring, you are correct printing our own vinyl's, so exciting!

Hi Amanda, thanks a lot for this great tutorial and for sharing all the amazing experimental work you're doing. I've been getting my head around it all day and I'm hopefully very close to output the STL file to try 3D printing it next. I'm curious to see what audio quality/resolution 3D printers can output these days, in comparison to the time where you made your demos.

I was looking at the video and noticed that in Audacity, you invert the curve in the equalisation effect and then apply a low pass filter. However, none of these steps seem to be mentioned in point 7.

Are you able to explain what these steps are for and whether they are required?

Thanks in advance! Charly

amandaghassaei (author)  charliecheese512 months ago

yeah that was the riaa eq step, I made that video after I published this instructable. You can find more info about that step in this project:

step 7

Snellingkorey2 months ago

3D printing is just round the corner, this will be a bigger hit to the high street.

NoPegs1 year ago
I am thrilled at your enthusiasm and technical know-how. But I couldn't help but notice you don't seem to be aware of how phonographs apply the RIAA equalization curve to the signal prior to amplification. This would explain why you get so much Bass and nearly no Treble. (IMHO you haven't yet hit the physical printing resolution barrier yet.) You should try applying the inverse RIAA emphasis curve to your audio data prior to your current processing steps and see how it goes, this way when played back the deck itself will apply the RIAA emphasis to your "pre-de-emphasized" signal and hopefully the result is increased fidelity.

She actually applies the RIAA (as well as invert the curve and apply a low pass filter) in the video but just doesn't mention it in step 7, and coincidentally I asked her why she was doing this just a few minutes ago, so the en

amandaghassaei (author)  NoPegs1 year ago
yes, this was a little oversight on my part. I haven't had a chance to go back and print out a record with RIAA eq, but all my laser cut records are properly eq'ed:
NavinJ3 months ago

Finally, I can download my records from pirate bay and print them out.

This is pretty amazing! Just imagine the quality and posibillities a few years into the future..

I agree Julie - this is just the tip of the ice's a POC the next stage is to take this into production - and mash up the flat form factor grooved records of the past/present with the 3D possibilities of the present / love to explore further with any other enthusasts of music/tech
shafrir8 months ago

Hello, all- I'm working on this project now and I'm having some trouble. The stl file output from Processing is huge! (500 MB). My printing lab advisor says that the Objet will struggle with such a big file. Did I do something wrong in my process? What should I do to fix it? The source recording is 2:28 and its text file is 28.8 MB.

amandaghassaei (author)  shafrir8 months ago

you'll notcie that all of my records only have about 1 min of audio on them - this is bc the files gets too big after that to print. The max the objet can do is about 300mb, you'll have to trim your song.

Hi Amanda - how do I go about messaging you directly ? I'd love to explore further with you?

So to make sure I understand you well, we could technically have a better result in terms of quality of sound but we need a printer that would be able to handle bigger file than 300MB? Or are there other restrictions in terms of details we could reach with the actual tools or materials available?

Thanks for replying, Amanda! I've tried making it smaller (150-250mb stl files). The files look fine in meshlab, but still crash the CatalystEX software we use on our printer. What do you think I should try next?

amandaghassaei (author)  shafrir8 months ago

that's a bummer! are you using a dimension printer? what is the max resolution of your machine? Since it's not as high res as the objet, you can lower some of the res settings in the script (by default I have it set up for an objet) to lower the size of the mesh. Ideally you want to fit in all the geometry that your printer will be able to print and no extra. let me know and ill help you find the right settings.

i am attempting this project also, but i am currently having trouble creating the txt file i get a line of code saying

SyntaxError: Non-ASCII character '\xe2' in file /Users/alford_charlie/Desktop/3DPrintedRecord-master/Processing3DPrintedRecord/ on line 21, but no encoding declared; see for details

Has anyone else had this problem or could help me remedy it.

All answers much appreciated.

Charlie I've been researching this as well - if you want to collaborate drop me a line!
Russellhope4 months ago
An amazing article and I applaud you for your great taste in music - I am a DJ and regularly drop Daft Punk, New Order and JoyDivision into the same set! I have some questions about some of the approaches you took and would love to explore further - by the way I found your blog entry when I was researching the idea of 3D printing records myself and found that you'd already done it! High 5! You can read my blog I wrote here I'd love to hear your thoughts
BryanG24 months ago

Hi, this is awesome. it has a really hard work, congratulations.

davidbarcomb4 months ago

I commend you for this idea. Interesting and well explained.

Awesome =)

pirobot6687 months ago


You know, the 'mastering' process for making a vinyl record mold is a form of 3d micro-sculpting; master record turns under a vibrating stylus which cuts the groove.

Would it be too hard to make such a stylus that is operated by a high-resolution printer system?

Rather than try to build the entire disk layer by layer, make a long spiral of 'vinyl' for a base, then trace that same spiral with a vibrating stylus....

3d printing is groovy and all (pun intended) but a hybrid 'lay down and take back' system can give 'finished' results with only a quick tool-change. Or turret-mounted tooling.....

Hey all! I'm writing an article about 3D-printing. It's for the website (focusses on electronic music and DJ-culture). It's been a while since the first 3D-printed vinyl came to life, we're wondering if there is any progress in the technique and we want to write about that. Are there any enthusiasts who are working on this project and trying to improve it? Let me know cause I'd love to talk to you about it ( Good luck to you all!

Awesome instructable, although i ran into a problem with the wavtotext file. I went through all the instructions and created a text file of the song and eventually ended up making both a laser cut version and a 3d print version. When i went back to look at my text file, it ended up being just a copy of the code for the wavtotext python code. Any ideas? It went through the process of creating it but the laser cut and 3d print files both have no information on them, just the cutlines.


amandaghassaei (author)  NolanCnolan1 year ago

did you use stereo audio in .wav format for wavetotext?

1-40 of 298Next »