My own Blender Workshop

This is my latest creation (8/24) - sort of building my own Blender workshop to create 3D models. There are a few goals in this exercise:

  1. Implement everything from scratch, wihtout using libraries as far as posisble, to understand what's going on,
  2. Implement something that is actually useful. In this case, muy idea is to provide a way to express the 3D model as a compoistion of a series of spans or actions, similar to a driving directions. Will talk more about this in a bit.
  3. Export the built models using a standard format

No library

Achieved the first goal fully. I was able to cut down my library usage down to minimum. The only libraries I currently use for this are gl-matrix.js (for matrix math in browser), and python Flask (for webserver). I have knocked off numpy, numjs and loads of other javascript and python libraries that I started with.

Geometry is fun

This gave me a great opportunity to implement a ton of geometry primitives, using the python math library and 3D graphics using the WebGL canvas provided by the browser - all from the scratch. That was fun. I'm going to host it soon.

Spans and actions

My idea is to define a 2D or 3D shape as an assembly of series of spans. Each span can be a Pull or Turn of other types. Each type has some parameters. After the 2D shape is built, it is stored a section. A section from the store room can be used for building 3D model using the same process. 3D spans of different types can be assembled together to make a full 3D model. The fully built 3D models can also be joined together to create more complex models.

Export/Import

This is a still a TODO item. Will do export first as it is simpler.

The screenshot below shows a simple 3D spring built using a circular 2D section and repeating a 3D span, which required about 10 mouse clicks and entry of 4 numbers.