Seeking Feedback: Enhance Parametric Model Maker with Custom Web Apps?

Hi everyone,
I’m the Product Manager for the Parametric Model Maker. We’re constantly thinking about ways to empower you, our talented OpenSCAD creators, and improve the experience for users customizing your amazing parametric designs.

Currently, users configure your models using the standard parameter UI. This works well for many models, but we’re exploring an idea for more complex or interactive configurations.

The Idea: Custom Configuration Interfaces

We’re considering adding a feature that would allow you, the creator, to optionally provide a custom web application (built with HTML, CSS, and JavaScript) alongside your OpenSCAD script.

  • How it would work (conceptually): Instead of (or in addition to) the standard parameter list, users interacting with your model on MakerWorld would see and use your custom web app interface. This interface would capture the necessary configuration inputs and then pass the final parameter values to your OpenSCAD script for rendering the model preview and final download.

  • Inspiration: This idea is partly inspired by platforms allowing creators to build custom interfaces, such as Poe’s Canvas Apps for bots (https://creator.poe.com/docs/canvas-app-quick-start) - though our implementation would obviously be tailored specifically for 3D model configuration.

  • Potential Benefits:

    • Richer User Experience: Create more intuitive or visual ways to configure parameters (e.g., dragging points on a 2D schematic, using sliders with real-time visual feedback within the app, complex calculators).

    • Better Guidance: Guide users through complex configurations more effectively than a simple list allows.

    • Advanced Validation: Implement sophisticated input validation or dependency checks directly in the interface.

    • Unique Interactions: Differentiate your model with a unique configuration experience tailored to its specific needs.

We Need Your Feedback!

This is just an idea at this stage, and your input is crucial before we invest significant development effort. We’d love to know:

  1. What are your initial thoughts on this concept?
  • Does this sound like something potentially valuable for your own parametric models, or for models you might use?

  • Do you see benefits in creating custom UIs for certain types of OpenSCAD models? Which types?

  • Would you potentially use this feature if it were available and well-implemented?

  • What potential downsides or challenges do you foresee (e.g., complexity, security, maintenance)?

  1. Frontend Development Skills in the OpenSCAD Community:
  • How comfortable are you personally with frontend web development (HTML, CSS, JavaScript)?

  • Based on your interactions, do you think this skillset is common, somewhat niche, or rare among OpenSCAD creators?

  • Would the need to potentially learn/use web development skills be a significant barrier for you or others to adopt such a feature?

We understand this would be an optional, advanced feature. The standard parameter list would absolutely remain the default and easiest way to publish parametric models. This new feature would be an extra tool for those who want to take their model’s user experience further.

Please share your thoughts, concerns, and excitement (or lack thereof!) in the replies below. Your feedback will directly shape whether and how we proceed with this idea.

Thanks for being an essential part of the MakerWorld community!

5 Likes

Hi,
I will try to share my toughts and hope not forget about anything.
Does this sound like something potentially valuable for your own parametric models, or for models you might use?
Actually it is somethign that it should have been really useful in one of my latest designs. SCAD capabilities are limited so I had to create a web page to preprocess a SVG file before feeding my script with it. Having this option would have make the process way more natural for the users.
Do you see benefits in creating custom UIs for certain types of OpenSCAD models? Which types?
Defenetly, but just if there is a way to keep certain “rules” to make it look like you are still inside makerworld. As I said, OpenSCAD is powerful but very limited when doing some really basic operations (spliting a text can be really painful) and having the option to use javascript will simplify this a lot. At the same time, I think that some kind of guidelines should be provided to avoid having such different UI, that the users don’t know how to use and in the end the get tired of it.
Would you potentially use this feature if it were available and well-implemented?
Yes, I’m thinking about integrating it with some APIs (Spotify for instance) that would simplify a lot the process of creating some models. Also, when using users resources, it should be easier to get some info from this resources and simplify the values that need to be provided by the user in the OpenSCAD script.
What potential downsides or challenges do you foresee (e.g., complexity, security, maintenance)?
Maintenance is my main concern, as I think this kind of code is more likely to be broken (Current OpenSCAD scripts run in some kind of “sandbox”, so it is easier to be prepared for changes)
How comfortable are you personally with frontend web development (HTML, CSS, JavaScript)?
My current role is “Expert Software Engineer”, so even if my main field is mobile app development, I find myself “fluent” while developing in any language.
Based on your interactions, do you think this skillset is common, somewhat niche, or rare among OpenSCAD creators?
I would say most of OpenSCAD creators would feel confident developing in any language. There is probably a small amount of developers that just know the basics, but at the same time, these creators are the same ones that would not need to make use of this new tool
Would the need to potentially learn/use web development skills be a significant barrier for you or others to adopt such a feature?
Some tutorials would be nice (creation of some basic components, maybe some image interaction, API calls…), and probably the creation of some reusable components that everybody can use.

4 Likes

I have to be honest, a lot of the stuff you talk about here goes over my head. That said, as I understand it this would be great to empower the end user to take advantage of peoples designs.

Please forgive me if this doesn’t fit in with the thread but you may be able to help or direct me to someone who can. I make signs and right now change text in Bambu Studio. The introduction of the text tool saved a lot of time as it moved that process out of CAD. What I’d really love is the ability to allow a customer to pick the style of sign and then customise it themselves before adding it to a print queue. Move the creative aspect to the user/customer. Something like make my sign but that can be embedded in a shopfront. Would this be possible? I’d pay Bambu a subscription for this functionality.

1 Like

I feel like that’s possible with an OpenSCAD web app. If you’re not familiar with the development process, you can probably find someone who is to make it for you. Adding it to the print queue could be something like uploading it to Google Drive (Google APIs suck though, so good luck finding a dev for it :sweat_smile: ) and then using Google Drive for Desktop to get that folder on your computer so you can import them all into Bambu just like if it was in your downloads folder.

1 Like

I think this is a very good idea and I also have a topic in mind that I could implement with it.

@PineappleBun_BBL: As with Parametric Model Maker, should all program components be openly readable for everyone and therefore copyable? (See 🆘 Protect our code)

If the work of the developers there can also be stolen so easily, nobody will bother to develop something.

Will there be a test position that we can take part in?

3 Likes

Whilst this idea has merit, can we please get the constantly requested feature and is alarmingly missing for models that are exclusive?

Private code

The exclusive program requires the Standard Digital File License, to aid in the protection of the rights of the owner.

Yet, if any designer includes any OpenSCAD code, that code is viewable, editable and can be easily stolen.

Once stolen, the output of the code can be uploaded as unique models without any legal recourse.

If a user like myself puts in days or weeks of effort into making models using OpenSCAD for the parametric model maker, the idea that I must GIVE AWAY THE SOURCE code is simply dumb and means the exclusive program protections becomes void.

The OPTION to set uploaded code to private means I could upload really complicated models that users can determine parameters making even the most complex models available.

Right now, demanding that I give away complex source code in order to benefit users by allowing them to change valuable isn’t fair.

You do not demand anyone provides model source code.

You demand exclusive program members do everything they can to protect the IP whilst doing nothing to allow those same members the ability to protect that same IP when it includes OpenSCAD code.

This request has been made my many people, many times, with good reasons.

If someone wishes to give away the source, that should be THEIR CHOICE, this omission is bewildering.

The choice to have private OpenSCAD code should be irrespective of being in the Exclusive program.

Lots of excellent models that users can choose options to make that model perfect for their needs are not uploaded and will not get uploaded because of your unwillingness to provide a basic protection.

I have many OpenSCAD programmatic models I have not uploaded because of this massive omission.

It can also simplify those who end up uploading lots of model variants hoping to match the users needs, yet, miss some because they can’t possibly guess all requirements.

I have held back from uploading a model because it has so many permutations that users should choose and the current system makes it difficult to figure out how to organise it.

It is annoying to keep asking for something so basic and it to go ignored to then read you wish to add something with limited interest (based on your own words) that is a massive job for your developers when private code is such an easy add.

My 35 years of professional software development, most of which owning the software company, I know how easy this is to add.

In answer to your actual question, I would find creating a custom web app trivial, but, that is because I know more than 30 programming and mark up languages.

The ability of the average coder would not understand the fundamentals of web apps just because they know OpenSCAD, the former is markup languages, the latter is a programming languages. People can have two skills sets, but, one skill set isn’t two.

A venn diagram of web app developers and OpenSCAD developers has only a small overlap.

6 Likes

Hi @PineappleBun_BBL and team,

I’m excited to provide feedback on your Custom Configuration Interfaces idea for the Parametric Model Maker. As both a software developer and an active creator using the Parametric Model Maker, I believe I can offer some valuable insights.

My Experience & Use Case

I’ve already created a web app called “Brick your pic” that allows users to upload images and transform them into brick-based designs. It currently works as follows:

I think this workflow shows exactly why your proposed feature would be valuable me as a developer and creator. It would eliminate the need for users to manually copy-paste code between platforms.

Value and Potential Use Cases

There is definitely value in this feature. Beyond my existing app, I can envision creating custom bin organizers with intuitive drag-and-drop interfaces, a board game generators with visual game piece placement or personalized items that integrate names, photos, and other user content.

Technical Considerations

As a software developer, I’m comfortable with frontend development. I think the growth of AI and LLMs has actually made creating small “applets” more accessible to citizen developers, so there may be more OpenSCAD creators with these skills (or the ability to acquire them) than we might expect.

Challenges and Concerns

  1. Data Storage & Privacy: My current app transforms images without storing them, but proper implementation may require thinking about data hosting, storage limits, and privacy considerations.
  2. Code Management: How would code tracking work? I currently use a private GitHub repo to manage my app’s code. Would MakerWorld provide version control, or would developers need to manage this externally?
  3. Deployment & Updates: What would the deployment process look like? How would developers push updates or bug fixes?
  4. Maintenance & Longevity: There might be initial enthusiasm with many apps created, but what happens if developers abandon their apps? Would there be mechanisms to ensure apps remain functional over time?
  5. App Review & Discovery: I recommend that MakerWorld creates really well-documented guides, implements an app review process with clear guidelines (similar to Apple’s App Store), and finally creating a promotion strategy to help quality apps gain visibility to reward designers who have partnered.
  6. Analytics: Developers are really interested in knowing all about how their app is performing, so they would need more detailed feedback on how far users make it into their app, basically like a conversion rate from landing on the page to creating the print. They would also need logs to help track any app issues.

Suggested Improvement for Rewards

While not directly related to this feature, I’d love to see the rewards system for parametric models improved. Currently, a parametric model creator only gets credit for one download/print, even if users create dozens of unique models through their generator. Considering adjusting rewards to account for the number of unique creations generated would better reflect the ongoing value these parametric models provide.

I’d be happy to participate in any beta testing if that would be helpful. Can’t wait to see what’s next for the PMM. Thanks!

3 Likes

I completely agree with the points system suggestion. Maybe counting every download it is not fair, as some user may download a model and then realize they need to make some changes, but I think after the first download there should be some kind of incentive.
Extra downloads could be tracked as some kind of invisible print profile, with the same points system

1 Like

I’ll start by saying I am very much in favor of this and have found the ootb OpenScad UI parameters extremely lacking.

What are your initial thoughts on this concept?
JavaScript (and CSS/HTML) is much more powerful and would give me a lot more freedom to create a UI for the OpenSCAD parameters that is more user friendly. One of the biggest challenges I’ve had with OpenSCAD models is only displaying parameters that are related to a previously selected parameter, basically nested settings. If I have a dropdown, I want to be able to change which parameters are displayed based on the value the user has selected for that dropdown. JavaScript would easily solve that problem.

As far as downsides go, it’s difficult to say without seeing the design docs. How will the UI elements scale for screen sizes? Will there be a standard library for common UI elements? Will changes be backwards compatible? Will it be well documented?

Frontend Development Skills in the OpenSCAD Community
I have worked as a full stack Software Developer for over 10 years. I have experience with Java, Kotlin, JS/TS, React, and more designing and building frontend web services as well as backend AWS services with well over 1000 TPS. For me, this change would be welcome and easy. However, these skills are not picked up in a week. As mentioned above, I think if this feature is well documented with both a reference doc and examples, it shouldn’t be too difficult to pick up. If this feature is optional and users can still create a basic UI using the built in OpenSCAD UI, then I don’t see any issues with people being discouraged from creating these types of models.

As far as how common these skills are among OpenSCAD creators, I had never used OpenSCAD until about 2 months ago. If someone already has coding experience, it’s just like learning any other new coding language. Lots of time looking at the docs and trying things in the code to see what works and what doesn’t. So, someone coming from a coding background should be no problem. The reverse is more difficult to say. OpenSCAD is completely different from markup languages and if someone does not have any prior experience with frontend code I could see most people struggling.

I’d also like to add that I am in favor of an option to make the OpenSCAD code private. Would I use it, I’m not sure, but it should still be an option and should be pretty easy to implement.

1 Like

Hey @PineappleBun_BBL , you may know of one of my models done with Hands on Katie. I believe it holds the MakerWorld site record for most customizations using the parametric model generator (other than Bambu’s own models, of course). 40k+ customizations and averaging a generated part about once every 4 minutes since launch in December.

You could probably tell that I’m a fan of your parametric model generator and I greatly appreciate Bambu’s willingness to make parametric models accessible to the masses. Parametrics make custom models accessible to those without knowledge or time for CAD development and your web-based GUI is the best OpenSCAD engine I’ve seen. We also have the same goals - provide easy and intuitive access to functional, complex, and advanced parts to users with a 3D printer.

First, yes, this improvement would be immensely helpful in many ways and I will get to why, but UI is not what is blocking me from uploading more complex/advanced models. I’ll explain.

Limited Model Complexity

We are designing entire ecosystems in OpenSCAD for people to print. These are parametric functional prints spanning 10-20 plates worth of prints toward a single model that can be customized exactly the way a user wants. I would LOVE to release this on MakerWorld and make it intuitive but the problem is processing power and OpenSCAD development time, not UI. This is best solved by allowing me to provide multiple STL/SVG files for my OpenSCAD to process and dramatically cut down calculation time.

You have a 15-second timeout on your generator (rightly so). Complex, multi-plate, functional ecosystems involve some parts that are re-used in different places and different ways. Think drawer sliders and connection mechanisms. OpenSCAD does not cache parts that are used multiple times in a model. It instead recalculates that same part every time it appears. This means that if I have a connection interface that appears 4 times on 10 parts across 10 plates, OpenSCAD needs to fully calculate that part 40 times. If that part averages 0.3 seconds to calculate, then that is 12 seconds of rendering time on a connector and only leaves 3 seconds to calculate the entire rest of the model. This alone kills the processing time in a very wasteful way.

If I had the ability to import my own STL file, all that calculation time would be saved and calculation time would otherwise be spend in areas that are legitimately complex and unique.

Importing STLs and SVGs would also dramatically improve development time. Visual CAD tools allow us to develop and iterate quickly. This is especially true when designing something functional. Currently, when I design something in another CAD tool, I then need to fully recreate that part again in OpenSCAD. If that part has complex chamfers or organic curves, I may never be able to recreate that part. Same is true for SVGs. This makes complex parametric parts very challening in MakerWorld that are otherwise trivial in other OpenSCAD solutions.

In short, I would be able to develop much more complex, multi-plate, functional parts by simply being able to import STLs and SVGs. If those are the types of models you want in the Parametric Model Maker, me as a designer being able to import STLs and SVGs would skyrocket the complexity of the parts I am uploading.

You alread let me upload STLs. Why not let me import what is already uploaded from one of my own private or public models or something?

Custom Configuration Interfaces

All the above said, custom configuration interfaces would be very useful. My functional parts often require either (1) validation, (2) conditional inputs (e.g., the user only needs to input these 4 values if they select this one drop-down option above), or (3) messages back to the user.

None of these features require complex HTML or JavaScript. These are fairly basic form controls. A stretch goal would be to also receive and parse echo messages from OpenSCAD so I can pass messages about the design back to the UI to be parsed and presented to the user. Things like BOM, important calculated dimensions, etc.

To make it more accessible, it’s important to provide templates and examples. This type of documentation has been lacking in prior parametric model maker features.

I do think these skillsets are somewhat common in OpenSCAD developers. Our community draws in those with more technical experience and software developers interested in CAD find appear in OpenSCAD due to its programmatic nature.

3 Likes

The longer I think about it, the more interesting the idea becomes. Even if not all Openscad designers will be able to create web apps, but there will certainly be web app developers who will then also want to learn the Openscad part.

It all depends a bit on how good the documentation and the examples are.

The exciting thing about this topic is to expand the meager interaction possibilities of Openscad. This could be input fields that are dependent on one another or access to data from the Internet (e.g. SVG).

Any Opensad+App developer can then use this to build their own great applications.

But I’m now taking the idea of interaction a little further.

It would be excellent if the existing new applications (Openscad + app) could also be used like a library.

I.e. I get screw handles for my Openscad application (parameterized) from an app A that can do this well, angle elements from an app B and hinges from an app C.

This means that the apps would be structured in two parts. Frontend/backend. The backend (the data service) of application B serves the the frontend of application B via API. However, not only application B can access the backend of application B, but all new applications.

Ideally, the BambulLab services MakeMySign, MakeMyVase, MakeMyStatue … but also AiScanner and ImageTo3DModel
are implemented in this way.

This would allow a new application to create a 3D view from an uploaded image (with ImageTo3DModel) and process the STL directly in Openscad. With MakeMySign you then create a suitable sign (also via API) and can also process this further in Openscad.

I think I need to get out of the sun …

2 Likes

Sounds good. I’ve been teaching myself OpenSCAD in the last month and its main shortcoming is lack of integration into any sort of menu system for setting the initial parameters. I don’t particularly want to have to learn web graphics but some scripted mechanism (not GUI-based) to build some sort of wizard to ask questions and get results and then ask different questions based on the result would be welcome. Even a simple multiple choice menu to initialise a variable from a limited set of choices would be an improvement, and specifically the ability to say which parameters (oops, I almost said ‘variables’ :slight_smile: ) come from user input and which the user should not see is essential. If the interface were there I would be happy to post whatever OpenSCAD programs I write rather than having to run them locally. (And I shouldn’t have to say so explicitly, but just in case, there would also need to be a mechanism to restrict visibility of one of these web interfaces until the creator has fully debugged it.)

Thanks, same for me I don’t want my code I worked on so hard being published to everyone!

For me personal:

I’ve always learned coding by doing. So at the moment I am not familiar with JavaScript, html, CSS…. But I guess I wuld be able to learn the basics if I have a Project I want to realize. If it is an additional feature, why discuss it? I one doesn’t need it, one don’t have to use it.

But as some others say, there are many basic features missing, would be great if you can work on them first when you ask what specific needs developers have.

For me this would be:

  • make it possible to include own STLs in the code. This works in openSCAD, in makerworld the user of the code can upload custom stls, but not the developer? Feels stupid to be honest.
  • make some way to sent on screen messages to the users of the code like a pop up introduction text like „welcome to my threaded box costumizer. You can change …“ or even mor important warning messages if some parameters interfere like „warning: pleas note that the inner diameter must be smaller than the outer diameter“, something like that.

To be honest I have been a bit disappointed with the engagement of some of my OpenSCAD models, it seems like a majority of users only print the included profiles and don’t even click the “Customize” button to explore the main model features. I’d be a bit hesitant to invest even more time into creating custom HTML and Javascript (please don’t have users do CSS) for this reason alone but I can see the value in the proposal. I’d really like to see some more basic features like the ability to include/import files to facilitate creating more complex models first however.

Have you considered using Python along with something like Jupyter Notebooks? I think OpenSCAD is good for what it does but for more complex models and scripting Python would be a very powerful tool and much easier for users to learn and work with compared to custom HTML.

1 Like

Coming from the same community as @BlackjackDuck, I agree to everything he said. Just first let us reference .STLs (and .SVGs) in our openSCAD code when we upload them alongside the .scad file, and we instantly have SO much more leverage with what we can do with the parametric model maker!

3 Likes

Just so you know, we have asked for this from the start.

They gave us a single, user-uploaded model instead.

We provided detailed examples of why this would be better and far more beneficial to all, but they ignored us again.

I wish you luck, I just will not hold my breath.

Along with a private code option, this would make the solution for users and designers alike much better.

3 Likes

My first experience with OpenSCAD started in the days where Thingiverse had started the customizer, this is long before standard BOSL2 modules and such.

I’m also a professional in IT with decades and several roles in the process.

I think there are some valid approaches:

  • WASM and WASI end-user client side code, this would allow encapsulating code in a not so easily reversed way, and allow better calculations, even some canvas.
  • Remote Web that is included as part of the model to draw and compose all the custom UI, pasting arguments back to the parametric OpenSCAD.
  • API to allow arguments, scripts and custom modules to be safely passed to produce the end result.

For this you’d need to bring clear ways to separate the issues we are talking about. The timeouts and cost of execution, if we are talking multiple plates for example, you need to do it in separate objects/plates, ensure the developer can define higher timeout values, maybe use the MakerLab credits if needed.

The use of an API to fetch, authenticated and allow the use of customizations is key. To run an ecosystem of developers, you’d need to provide throttling measures per model, developer and end user. To allow models to gain complexity and increase value.

If we want to be able to compose more complex models, we will need to be able to batch creations for a end-user. See the underware models I have prepared for openGrid, but key would be to allow a user to make their plan and get a list of models and quantities to print.

Add me to your NDA if you’d like to discuss what can’t be public. I don’t want to discuss or know roadmap or business directions, but to openly contribute to build a better product for all of us.

Thanks for your work, @PineappleBun_BBL

Thank you all for the thoughtful and detailed feedback! I’d like to address some of the main topics that have come up and share where we’re headed:


1. Frontend Customization Feature

I’m glad to see that many creators find the idea of custom frontend interfaces useful. Based on your feedback, this feature will be added to our development roadmap. We’re also exploring ways for these custom web apps to directly modify the OpenSCAD script, which should unlock even more powerful and intuitive workflows for advanced models.


2. Support for Additional Files (STL, SVG, etc.)

We hear you: the ability for creators to include other files such as STL and SVG alongside their models is a high priority. I want to confirm that this feature is already in our roadmap. We agree that supporting these file types will allow for much more complex and versatile model creation.


3. Code Privacy for Creators

We’ve received the request for code privacy loud and clear, and we will add it to our roadmap as well. I do want to explain that this feature is not trivial to implement. Our storage system currently distinguishes only between public and private models, not individual files within a public model. Additionally, the current parameter UI generation relies heavily on parsing the OpenSCAD script on the frontend. This means we have technical and architectural challenges to solve before we can offer robust code privacy for individual files. But your feedback is important and we are giving it serious consideration.


4. Please Be Patient

Finally, I want to ask for your patience. Our team is actively working on multiple projects within MakerLab, and we need to balance priorities across the platform. Your feedback is shaping our direction, and we appreciate your continued support and engagement as we work to make MakerWorld better for everyone.


Thank you again for being such an essential part of the MakerWorld community! Please keep the feedback coming—your voices truly help us build a better platform together.

6 Likes

It sounds like some nice features will be in the works this year. I did have one additional feature I thought of recently that would be nice to have. A web based UI may solve this problem, but I’ll throw it out there anyways. It would be nice to be able to show an error or warning notification.

With some of the code I’ve written for OpenSCAD models, I usually have to set up parameters so that they follow certain rules. For example, let’s say I have a hollow cylinder and I want to give the user the option to set both the inner and outer diameter. Currently, I set up the parameters to include one of those diameters and wall thickness. This is to prevent users from attempting to create a cylinder with an inner diameter > outer diameter. I can do a check on these values before rendering the model and abort, but I have no way of telling a user why the model didn’t render.

2 Likes