I would like to combine a WYSIWYG equation editor like Mathquill, CAS like nerdamer, and visualization libraries like GlowScript to create a website where users can collaborate to create visualizations in mechanical/civil engineering. (I imagine it could be used for many other fields, but I’m most familiar with civil).
I have already made a website seeciv.com which has 3D interactive visualizations for civil engineering concepts. However, the website is static; I came up with all the displays for the topics, and so the user is unable to experiment.
I had an idea to uncover the computations so users have full control over it and build off of it:
The user could write equations with a WYSIWYG equation editor like MathQuill. The Latex would be converted to a symbolic equation. Systems of equations could then be solved with a CAS like nerdamer. The user would be able to define systems of equations, substitute variables for these systems, and solve for variables, all within the equation editor. (I guess it would be an extremely primitive coding language where a SoE can be defined and with commands “solve” and “substitute”. The order of the commands should not matter).
Values obtained from the CAS could then be inputs to create a graphic using libraries like Glowscript (this is the library I used for seeciv). This then means the visualization could update dynamically when the values in the equations change. Sliders could be used to change values continuously (as was done in seeciv). Multiple visuals could also be shown side by side, and could be coupled with equations written by the user.
(Here is one example: Someone could make a visual for beam theory where transverse loads are applied on a beam. Someone else could make a visual for design of reinforced concrete beam cross-section based on the concrete manual. Another user could couple the visuals together and display them side by side. The user could then also come up with some other relation, like the cost of the beam, and see different beam designs by moving sliders with those additional constraints).
This idea might be overly ambitious, but I do like that the intermediate stages might also be useful. For example, even without visuals, I think it could still be pretty useful for solving engineering problems.
Does this idea seem doable? Do you think it would be useful? Are there any issues with it?
Also, I would be thrilled if anyone would want to collaborate on it. The Github for seeciv is here.