User-creatable plugins

Hi, over the last few years I’ve seen many feature requests for Shapr3D but few actually are worked on and it’s understandable since development takes time and effort. I feel this is an area where the community could help out, buy creating a plugin system which allows users to modify and add features that are open source. Particularly simulation (e.g. stress testing), animation and team collaboration are the three biggest factors holding the app back right now, and plugins could act as a temporary community solution whilst the company works on implementing these (or even adopts the Open-source plugin) officially. This would definitely make the app better and more accessible. Would there be any issues here regarding devices such as iPads where the App Store has strict regulations on app functionality?

4 Likes

It’s definitely an interesting topic, however technically it’s not as easy as it seems.

One thing is what you mentioned, App store is quite strict, to it would need to be investigated how these plugins could be distributed.

On the app’s side, it’s also a significant amount of work to make it more modular, to be able to effectively work with these kind of add-ons / plugins.

It’s not out of question, but something that we are not actively working on right now.

1 Like

Shapr3D is a very promising new generation 3D CAD program,
if it can be more opened to users for secondary development, it will be widely expand the usage of this software, either to provide APIs to users or another choice is to provide scripting node system like rhino’s grasshopper, revit’s dynamo or blender’s geometry node.
Shapr3d can be widely used in AEC industry…

3 Likes

Hi @JimHo , this is definitely on our radar, but we haven’t prioritized it yet.

Dear Istvan,
Thanks for respond, I am an experienced revit user (more than over 20 years), I am looking for a tool that can help revit on concept design, I am really looking this for long time(should say over 10 years), I found Shapr3d is just the thing I am looking for, yet need secondary developed for AEC purpose. If this door opened I believe Shapr3d will be more popular than Sketchup +rhino. So, please really consider this seriously.
Also please advise if in future you may start this project, what language will be used for this secondary development, like C++ for blender or C# for Revit or something else, thanks

3 Likes

another thinking on this issue, I understand that as an software developer you have roadmap and focus,
and sure there is limited resource to develop all kinds of requests, though, what about to build a eco system like blender, blender market, that users can do a lot, which also helps the software to expand its use…

2 Likes

What would be your preferred choice?

C# is easier, that all what we did on revit can be easily transferred to Shapr3D, if available,

3 Likes

python will be a lot of user’s choice, yet obviously can be a bit slow…

2 Likes

strong support for plugins/extensions

im sure it would be complicated and delay your roadmap, but it would reap huge benefits moving forward, forever:

  • free unlimited global dev work - allows shapr staff to focus on core enhancements and higher level goals instead of spending revenue/funding to get bogged down in nice-to-haves

  • free marketing: when someone makes a plugin, they’re going to be proud of it and want to show it off on youtube/twitter/hackernews etc

  • new unknowable markets - almost everyone in this messageboard is here because shapr3d is already great fit for their work. there’s an unknowable amount of people out there who looked at shapr online and decided to move on because it was clearly missing some specific features important to them. giving people the ability to fill those gaps on their own will introduce shapr to untapped markets that your current staff or user based might not even be aware of

note vscode’s vibrant extensions marketplace and how it became the de facto IDE in some communities seemingly overnight several years ago

2 Likes

I think/hope that the coming variable naming and expressions in the History-Based Parametric Modelling production implementation will allow an extension to the equivalent of the power-copy system that exists in Catina V5/6 where features with rules-based construction can be copied into your model and linked to the analogous geometry that was used to create them in the source, some variable values provided and the resulting operations implemented in the destination model.
A simple example of this would be to model a dimensionally accurate thread or gear in a sample model, name its parameters and source objects, group the result as the “smart body” and save your model into a catalog or folder.
You then import that smart body into your current model, attach the diameter to the diameter item in your model, provide the length to your length parameter and the expressions construct the revolve with the right height, angle, etc. based on the pitch and length and also do the subtract from the shaft and include the ramp at the thread base and the chamfer at the shaft tip.
These sorts of functions seem very do-able and usually make 90% of the need to code a procedure in a programming language go away.

2 Likes

While this is not on our short term roadmap, it is certainly on our radar.

2 Likes

I hope you could consider bringing it forward. I can imagine a simple implementation where you sort of copy-paste a selected range of history steps from one feature’s creation to a new starting feature to re-use the same sequence of steps.
It would really supercharge model generation in incredible ways.
I also don’t think that that approach could possibly be seen as being outside the app security limitations/guidelines. No loops or branching seems safe… I hope.

2 Likes

I must admit, I run into fairly simple, missing features or conveniences that I wish I could just implement myself quite often! Also seconding C# or Python.

A first pass could be allowing binding hotkeys to existing actions, then potentially chaining actions as macros. I think just this could unlock a lot of potential for users without having to solve every problem that would have to be solved for full-on scripting, while creating a point of entry for more features and visibility on potential issues and solutions for the larger goal.

FWIW any time anyone creates a node-based or “simpler” scripting solution to make things “easier,” it’s more complex to use in the end–I implore you to stick to code, imo :slight_smile:

And thank you for listening to continued suggestions, even though you’ve made it clear this isn’t on the timeline quite yet. :raised_hands:

2 Likes

If this is only about having a scripting solution, then I think I should request a feature construction history re-use feature request separately.
It is a smart way of doing adaptive feature re-use that I am convinced could be delivered much sooner.

There is some value there but my intention would be that the community could implement so many tiny QOL fixes (and bigger features too!). Section plane dynamic moving, 3d-space widget to show and hide texture plane, line splitting, more alignment features, rounding sketch corners, changing tool defaults (extrude new body vs union), selection history, keyboard shortcuts. Even big things like STL->Step conversion could be community driven.

I realize a plugin engine is difficult to implement in an existing product (been there!). Another option could be to share the source code with select contributors, with legal protections, but I’m sure that’s a stretch :smiley:

I have found that creating a folder of standard geometry mini-projects that hold standard things that I can import, such as thread forms, helps me get to a reasonable work-around for my use case for a scripting environment.
I have begun to catalog feaures that I will use again regularly. That way I don’t have to model the standard stuff from scratch anymore or, if I had a scripting engine, figure out how to code robust scripts to do the same thing in every scenario of unpredictable inputs.
So, a good feature re-use functionality in Shapr3D would really be welcome.