Online viewer for strucural analysis models

Hi everyone!

We are a small dev team from Hungary, working in the structural engineering domain. Our main product is Consteel, a desktop app for structural analysis and design.

We have been working on a cloud-based solution for our users, where they can store and view their models online.

Our biggest challenge was that the size of the models varied a lot, anything from small structures with 10 structural members to sports stadiums or airports with 15-20k individual members. We struggled a lot with performance before, but after a few iterations, we found thin instancing. We really liked it, so we built our entire architecture around it.

During a marketing campaign, we showcased some of the best models created by our users, using our viewer. Although the viewer was integrated with limited functionality, you can get an idea of what these models look like. You can check it out here:

The new upcoming feature is comparing models and visualizing the diffs between models. The community was really helpful in creating the fading effect between the two models.

We are also working on visualizing analysis results (eg. deformations of a structure under a given load configuration), which is pretty exciting.


This is really cool !!! cc @PirateJC

1 Like

That’s sooo nice, I love the look of your UI and rendering, feels super sleek :smiley: And the deformation results visualization already looks so cool too, are you using morph targets? :open_mouth:

1 Like

Thanks, I’m thrilled to hear that.

We did not look into morph targets, because our understanding is that it is not compatible with our use case, having different deformations (morph targets) per instance (all members are thin instances). Do you think we could utilize it?

Deformations are the results of calculations based on the finite element method. So members are divided into finite elements and the actual result values are given for the nodes at the end of the finite elements. All these finite elements are thin instances positioned using affine transformations based on the result values.

This results in a jagged member like the above, which is not pretty but it is acceptable from an engineering standpoint. We have the necessary result data though, to eliminate these discontinuities, so in theory, we could come up with a non-affine transformation matrix that can solve this, which would be pretty cool.

Oooh, I was thinking more about the line of the fully deformed mesh being a separate mesh and then the morph target being used to transition between them :thinking: You can use morph targets with instances, but they’ll always be on the same deformation state as the main mesh.