I'm a graphics engineer and I want to build a 3D modeling tool similar to Blender in Python. The purpose is self educational, but it should support following features:

  1. Load geometric scenes
  2. Enable user to select vertices, faces, and perform edit operations on them like translate, rotate etc with mouse or keyboard commands.
  3. Setup lights, camera and enable users to select and move them around.
  4. Render scene in selected camera view. Here, I also plan to inject my own custom renderers to test out different algorithms.

I am experienced in Python and in graphics theory. I'd like to know about tools, APIs, libraries I should use to build this project. A game engine like Panda3D has support for everything, but can I use something simpler, since I'm not building a game, but a 3D graphics editing environment much like Blender.

Thank you!


I have built a few (way way way more primitive than Blender) 3D data manipulation tools, the libraries I used were:

  • VTK for the 3D stuff. It supports different 3D and 2D meshes, voxels, images, has some 3D widgets etc. It has (to my knowledge) no CAD-like stuff, though, like NURBS, B-reps etc. If you want to go more self-educational, Python bindings for pure OpenGL exist as well (Pyglet, PyOpenGL, etc.)
  • For the GUI, I used either wxPython or PyQT. PyQT felt more "mature" and feature-complete, wxWidgets has more "freedom" about it while still usually having enough features.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.