Python 3D CAD -- need collaborators, or just brave souls :)

rantingrick rantingrick at gmail.com
Mon Feb 9 15:58:44 EST 2009


Hello all,

It has long been my dream to create an open source 3D CAD program and
i am starting to crawl my way into the first steps. I now believe i am
ready to start this endeavor and i am currently looking for fellow
Python programmers (no matter what skill level) to get started
brainstorming this design.

I have a real good idea of the UI design and at this point i just want
to start simple and build this thing. I figure this will be a good
learning experience for myself and others and in the process i can
realize my dream. And if all this turns out to be is a learning
experience, well nobody lost.

Of course Python will limit the speed here, but at this point i want
to get a template up and running. Speed does not matter at this point,
and optimizations can come along later as i am sure a few complete re-
writes are inevitable :)

My initial start will cover a very simple user interface something
like VPython but much more usable as a CAD modeler. From the start
just a few simple primitives (faces, lines-segments) that will be the
building blocks for more complex models like (arcs, rectangles,
circles, polygons, cubes, spheres, etc..).

There will need to be mouse picking as i see this application as a
very interactive environment. Of course in the beginning all
interaction will most likely be in a command line type manner until
the functionality can be worked out.

There will need to be a hierarchy of instancing and grouping within
the model to facilitate easy transformation of entities within the
model.

I am not too worried about any sort of texturing at this point. I want
to squeeze as much speed as possible and prettiness will come in due
course. I also have no plans for layering, or multiple scenes at this
time. Simple functionality is the end game here.

Once the UI is there and the modeling work flow is worked out,
everything should be a component add-on from there.

So the main points are...

#-- Entities --#
 face
 line-segment

#-- Hierarchy --#
 Entity (one face, or line-segment)
 Group (contained of multiple entities that can be translated,
rotated, scaled as one)
 Instance (component definition)

#-- Tools --#
 line
 rect
 circle
 arc
 select
 rotation
 translation
 scale
 extrusion along path
 measurement


So there it is. Any takers? :)





More information about the Python-list mailing list