Feedback on history based parametric version

Hi Shapr3D,

I promised some time ago to give feedback on my experience modeling a HiFi speaker enclosure: Portable HiFi Speaker modeled with parametric beta (version 5.560)
I’m taking the time to do that today.

Warning : this is a very long post… sorry for that :wink:

First of all, it works!
It’s important to emphasize this because being able to do parametric modeling on an iPad is pretty incredible (and really great) when you think about it, and the possibility to switch between the iPad and the MacBook is really useful. The parametric version is the only one I use for several month now.

Next, the visualization gives a very good result.
The result is really very good, especially considering that the visualization is done in real-time and that the choice of materials is very intuitive. For example, the mapping of the fabric texture on the rounded surfaces is very well done, particularly the texture transitions continuously between the top and bottom of the cosmetic parts covered with fabric on the speaker. Neither Keyshot nor LightTracer do as well without having to manually edit the UV mapping.
Of course, RayTracing software gives a better rendering of multiple reflections but it is not real-time (it takes between a few minutes and an hour with Light Tracer on my MacBook Air M1 depending on the quality and resolution requested for a photo-realistic quality).

I would like to take this opportunity to thank the team for adding luminescent materials to the latest version 5.80, it’s great for modeling LEDs on products.

In terms of performance:
I observed very variable results depending on how I modeled things. In particular, the mirror function works ten times faster when the mirror is done with respect to a symmetry plane proposed by the system ((0xy) (Oxz) (Oyz)) than if the symmetry plane is composed of a face of an object, even if this object is perfectly aligned with the general reference frame.

The sweep function is always very fast, regardless of the base shape of the sweep, while doing a sweep of a shape and then fillets on multiple edges can easily become slow. For example, to model the top of the handle, I started by modeling rectangular grooves to which I then applied a fillet. I gave up because it was very slow on the iPad (five to ten seconds just for the fillets) in order to integrate the rounds directly into the base shape and apply the sweep to that shape. It’s at least ten times faster in execution time but requires more work on the sketch.

Sketches become slow when there are a hundred objects on them and/or when there are a lot of constraints. I haven’t really understood yet whether it’s better to make one sketch per object to be able to modify it more easily and keep the responsiveness or to make more complicated sketches, used by several objects, but difficult to modify without breaking the references and having to repair things in the history afterward.

As for improvements that seem desirable to me:

  1. The Item List
    The item list should be active for displaying/hiding elements, even when a tool is selected or when editing a parameter in history. Indeed, it is sometimes impossible to select the desired element because it is masked by another.
    I could give a specific example of the sweep of a shape whose sketch is in the same plane as a face of an object, with the sweep being done along an edge of the same object. It is necessary for the object to be visible in order to select the edge but then the object interferes with the sketch since the sketch and a face of the object are on the same plane.

  2. Errors in references on Sketches are not clear
    It’s very difficult to understand what needs to be corrected.

  3. I often needed to correct lost references
    (part of the time because the Loft was not editable at that time)

  4. Speaking of Loft
    It would be great one day to be able to select several adjacent shapes of the same sketch so that the Loft understands that it is a single face. Also, for periodic Lofts, there is a black line on the surface of the object where the shape closes back on itself. This line is of no use to me and I always erase it. Does it have a purpose?

  5. Renaming objects and folders:
    When renaming objects and/or moving them into folders, it’s hard to find one’s way around when going back in history, because we don’t know how the objects are named or in which folder they are.
    This is particularly true if an object is used as a tool to create for example two other objects and is then modified to become a third object and is renamed and moved into a folder afterward. Only the last name created and the last folder used remain, including in earlier steps.
    I don’t have a good solution to offer for this problem, but ideally, each step of the history should come with the names of the objects and folders that existed at that moment. I am aware that this is probably a lot of data to remember at each step of the history, unless the creation of folders, renaming, and moving of objects into folders become elements of the history.

  6. Being able to change the width of the history:
    I often use quite long names and/or I add the value of certain parameters in the name of the steps. For example: “Boolean intersect cut button1 / Crop button” and these names are too long to be displayed in the history window. Moreover, the size of the text in the history is larger than that of the elements in the “item” pane. It wouldn’t bother me if the font size of the history were a bit reduced.

  7. Being able to structure history:
    I would love to have folders or indentation with the ability to hide/unfold a tree, like in a code editor. I also miss the ability to insert comments or notes. In the same way that one comments on computer code, I would love to be able to comment on the steps in history to better find my way later on.

  8. Duplicate or copy/paste parts of history:
    This would be convenient when creating repetitive sequences. For example, creating a plane along an edge in a given direction requires a lot of clicks. If you have several planes to create along several edges, it would be much faster to duplicate the history entry and only edit the edge.

  9. Chamfer / Fillet:
    It would be practical to be able to switch from one to the other in history. This would avoid having to reselect all the affected edges, which can be very time-consuming.

  10. The target body is not always the first selected body:
    The target body order is inverted for the Union tool compared to the Subtract and Intersect tools, which is quite confusing because it is the name of the target body that becomes the name of the result of the boolean operation. In all cases, the first selected object should be the target body and the second the tool object.

  11. The direction of rotation of the revolution tool is not consistant:
    For example, a rectangle revolved around the Z axis turns in the counterclockwise direction, but revolved around one of it’s own edge in the clockwise direction.

  12. Movement / Rotation:
    We have no idea in the history of the translation vector or the rotation performed. For example, if I have made an 18° rotation but I can’t remember and I want a total of 22° in the end, it’s not obvious that I need to rotate by +4°. So I ended adding this kind of information intro the step’s name to keep track of the value : “rotation by +18°”

  13. Align:
    We can only edit the target body for the moment, not the other alignment parameters, so it is not really useful for me at present, but I’m pretty sure it is somewhere on the roadmap.

  14. Projection to sketch:
    We cannot edit what is projected (and we also do not know what is projected, from which body or sketch).

  15. The zebra mode only exists on Mac:
    I search for it on the iPad but couldn’t find where it is :slight_smile:

Thanks again to all the team for the great work and the continuous evolution of this wonderful software and I hope this feedback will be useful in a way or the other to the dev team.
Should you need more details about some points, do not hesitate to write me a message, I will elaborate more if required.



-15, on Ipad, zebra in the appearance/surface analysis :upside_down_face:

Many thanks @JST, you are right. Looks like I didn’t search hard enough😂

Thank you @PEC , great, actionable feedback. Many of these improvements are already on our roadmap.

You are more than welcome, @Istvan, and thank you for taking the time to answer on the forum, even on Sundays.

You are doing a great job with your compagny, I’m really impressed; congratulation for disrupting the CAD industry!


Thank you! :pray: We are just getting started!

1 Like

I started using the beta. I guess my expectations are that Shapr3D would remember the operations and the order of operations in a sketch. If I create a few objects and then subsequently mirror and rotate (copy) those objects, I would expect any changes on the original object to propagate to all the mirrored and copied objects. However, that is not the case.

Is this how this feature is supposed to work?

Changes can propagate to copies or mirrors – if you want them to. Best of all, you don’t need to decide up front which objects should have this behavior.

I’ll admit it took me a while to figure this out. I’m fairly new to parametric history and also a fairly casual CAD user, and I’ve yet to find a really good tutorial or video on Shapr’s implementation. But I do love to experiment and this is what I’ve learned.

Ignoring the history feature for a second, Shapr3D still works pretty much the same as it always has. Which not only aids continuity for current users, it actually makes the most sense (IMHO) since most of the time copied items (especially mirrors) wind up being similar but not identical. And propagated changes may do more harm than good.

But, if you later change your mind and do want some changes to propagate, you can just open the history window and apply the changes before the copy or mirror is executed.

As I said, it was not particularly obvious (at least to me) but with a little experimenting, it becomes fairly straightforward. Shapr helps in this regard by highlighting the matching object as you click on the various steps in the history file.

Find the desired mirror or copy step, and then highlight (click on) the appropriate preceding change (e.g. an extrusion). The object will highlight in your drawing with an active gizmo, and you can make any desired adjustments BEFORE the copy or mirror step is executed – and the changes are now magically propagated.

For me, it was easiest to learn by creating a small file with just a few objects and a very short history file. You can literally drag and drop history steps to change the order and observe the results in real time. Once you have experienced the power this gives you, it is impossible to go back to the old way.


Also you can set a breakpoint that literally move you back in time before any copying or mirroring were done. Do your changes and remove breakpoint.

1 Like

Quick example