You’ve probably seen models on Maker World that have a “Customize” button. When the user clicks it, they see a UI where they can tweak parameters, live preview the changes, and then download their customized model to print.
I always wondered how people created customizable models, and I couldn’t find clear documentation in one place that walked through the process and all the available features. I just built my first customizable model, so I documented how it worked. It’s a really cool system that opens up all sorts of new options for models.
Here’s the model that I created that shows how the end result looks on Maker World: https://makerworld.com/en/models/1250464-cute-desk-nameplate-generator-for-teachers-kids
In simplest terms, customizable models are scripts written in OpenSCAD. OpenSCAD is a free programming tool for describing CAD models as code. Maker World runs your OpenSCAD code inside their Parametric Model Maker app and displays the result for the user to download. So if you can write an OpenSCAD script to generate your model and if you can make the model parameters into variables, Maker World will let users manipulate those variables in a nice UI and download a printable 3mf file.
It’s like scripting your model’s feature timeline. If you imagine the steps you take in Fusion or OnShape to model something, in OpenSCAD those steps become lines of code. So instead of clicking the Sphere tool and then dragging out the dimension to 20mm to create a sphere, you would add a line of code to your script that says sphere(d = 20);
to get the same result.
How do I learn how to write OpenSCAD scripts?
- There are some good OpenSCAD tutorials on YouTube. This is the easiest way to get a feel for how it works and what you can do.
- OpenSCAD has documentation and a cheatsheet online.
- Or you can just use ChatGPT! Describe the object you want to model and ask ChatGPT to create an OpenSCAD script for you. It usually takes some tweaking from there, but it’s a good way to get started.
How do I test my script as I develop it?
- You can run your script in OpenSCAD on your own computer as you develop.
- Or you can run it in MakerLab’s Parametric Model Maker in your browser - you don’t even need to install OpenSCAD.
What version of OpenSCAD is Maker World compatible with?
- The OpenSCAD project is in a weird state. The last official version was released in early 2021, but they have daily development versions that have added a lot of new features since then. Maker World seems to be compatible with the 2021 release, so just stick with the official release for now.
How do I embed my OpenSCAD script in my MakerWorld listing and get the “Customize” button to appear?
- Create a new listing on MakerWorld but upload the
*.scad file
instead of a*.3mf
file. The system will automatically recognize the*.scad
file and add a ‘Customize’ button to the MakerWorld listing.
Do I get MakerWorld points when people use the Customize button?
- Yes, as far as I know.
I want to customize the menu choices available to the user in the customizer. How do I control the UI?
- Variables that you put at the top of your script will show up as editable options in the UI automatically. To customize how those options appear (to make sliders, drop-down boxes, color pickers, embedded help, etc.), you have to add special comments to your code that tell Maker World which UI widgets to display.
- The easiest way to see how to format your magic comments is to click the “Sample Code” icon in the very bottom left of the Parametric Model Maker UI. It will load sample code in your editor that shows all the different possibilities.
- Mostly, they follow the same syntax that OpenSCAD itself uses for custom UIs: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Customizer
For example, here’s how to create a UI widget that lets the user choose between three different model sizes from a dropdown list with Large, Medium, and Small options:
// Select which size you want
Box_Size = 10; // [10:Large, 5:Medium, 1:Small]
I want users to be able to customize text on the model. Which fonts are available for my script?
- You can only use the fonts that Maker World has installed. Luckily, they include most of the fonts on Google Fonts. You can find the exact list of font names by going to the parametric model maker and clicking the “Book” icon in the bottom left and then clicking the “Third-party fonts” menu option.
Can I use my own custom fonts? I want to make a sick Avatar logo generator, so I really need the Papyrus font.
- No, sorry. You can only use the fonts pre-loaded by Maker World, but they have several thousand.
Can I let the user choose their own font from a list?
- Yes! See above about customizing the UI. Adding
// font
after a variable turns it into a font selector in the UI.
Can I use third-party libraries in my OpenSCAD script?
- You can only use the specific OpenSCAD libraries that Maker World has installed, but they have most of what you might want. Right now, they have:
- BOSL2 includes lots of general-purpose functions that are missing from OpenSCAD
- UB is another mishmash of general-purpose utilities
- KeyV2 to make keyboard key caps
- gridfinity-rebuilt-openscad to generate gridfinity bins
- threads-scad for making threaded parts
- Getriebe for generating gears
- knurledFinishLib_v2 for adding knurling to surfaces
Can users upload logos to my script so I can emboss them on my model?
- Yes, see this announcement for how to do that.
Can I create models that use multiple colors/multiple filaments?
- Yes, they added this recently! Check out this announcement
Can I create models that use more than one build plate? And can I customize the print settings in the downloadable 3mf file?
Hope that helps! I had a lot of fun playing with the Parametric Model Maker, so hopefully this helps someone else give it a try.