I made some more progress on my project and it finally looks and works well enough.
Here's some of the footage:
Draw 2d shapes and extrude them:
Cut hinges and add flexible joints to link the hinges
Trace shapes by single click
And a flexi dinosaur is ready to be printed!
This system does not require user to have any knowledge in programming.
All he/she have to do is point and click.
My goal is not to build a AUTOCAD or Fusion360 copy based on openjscad.
Instead of building a ultimately versatile system which costs a ton to maintain and develop, I think making multiple systems which are specialized for individual objects will have very different advantages.
Firstly, these systems will be much simpler and easier to learn.
Many people got scared off 3D modelling by the flat learning curve and complex functions.
Secondly, the complexity of each system's source code will be much lower, which may be easier to be maintained and modified.
I think this also match the style/philosophy of openjscad, since the design of shareable .jscad files allows people to create complex things like wormgears without doing heavy mathematical calculations and coding.
Of course, this will put limit to every system since they are dedicated to specific objects to make.
But most of the time people just want a ordinary type of thing in 3D printing which have the right attribute, for example, a involute gear which have 15cm in diameter and have 70 teeth.
My prototype system still needs some modification before it can be released.
Any opinion and suggestions will be welcomed.