ThreeDimensions Version-1.0.0 is here !

Leader posted 2 min read

ThreeDimensions

Version-1.0.0 Repo - https://github.com/LegedsDaD/ThreeDimensions-v1.1.1

ThreeDimensions is a programmable 3D modeling library for Python, backed by a C++ geometry kernel for heavy mesh operations.

Do check out Main Repository

Send your creations using ThreeDimensions in Models by filling in the Form. The best models will be added to the examples of ThreeDimensions. Others will be added to the models groups. See current submissions in Submissions. Do participate !

Version: 1.0.0

Overview

  • Python-first API (import threedimensions as td)
  • C++ core for mesh math/topology/modifiers when available
  • Pure-Python fallback so the package remains usable without compiling native code
  • Half-edge/topology-oriented editing workflow with sculpt, modifiers, curves, nodes, UV tools, and export

Feature Highlights

  • Transform system: move/rotate/scale, pivot modes, snapping, mirror transform, proportional falloff
  • Selection: vertex/edge/face, loop/ring, box/circle/lasso, select similar
  • Editing: extrude, inset, bevel, bridge, fill, grid fill, subdivide, loop cut, spin, screw, solidify, wireframe
  • Deformation: bend, twist, taper, stretch, shear, warp
  • Symmetry: mirror and symmetrize helpers
  • Sculpt: draw/clay/inflate/smooth/grab/pinch/crease/mask style brush workflow + filters
  • Remesh/reduction: voxel remesh, quad remesh, decimate
  • Primitives: cube, sphere, UV sphere, icosphere, cylinder, cone, torus, plane, grid
  • Curves: Bezier, NURBS-style fallback, lathe, curve-to-mesh
  • UV: unwrap, smart UV project, project from view, seams
  • Retopo helpers: shrinkwrap, poly build, relax topology
  • Modifier stack: subdivision, mirror, array, solidify, boolean, decimate, lattice
  • Procedural NodeGraph API
  • Optional OpenGL viewer (td.viewer(mesh) or with td.viewer() as scene)

Installation

pip install pip install threedimensions==1.1.1

Optional viewer dependencies:

pip install glfw PyOpenGL

Quick Start

import threedimensions as td

mesh = td.create_cube(1.0)
mesh.extrude(distance=0.2)
mesh.bevel(width=0.05)
mesh.subdivide(1)
mesh.save("model.obj")

Geometry Nodes (Programmable)

import threedimensions as td

graph = td.NodeGraph()
cube = graph.node("Cube", size=1.0)
subdiv = graph.node("Subdivision", levels=2)
extrude = graph.node("Extrude", distance=0.25)

graph.connect(cube, subdiv)
graph.connect(subdiv, extrude)

mesh = graph.evaluate()
mesh.save("graph.obj")

Viewer

import threedimensions as td

mesh = td.create_torus()
td.viewer(mesh)  # blocking preview

with td.viewer() as scene:
    scene.update(mesh)
    scene.run()

Architecture

  • python/threedimensions/: high-level Python API wrappers, fallback implementations, procedural nodes, viewer

License

MIT

More Posts

Your Tech Stack Isn’t Your Ceiling. Your Story Is

Karol Modelskiverified - Apr 9

Participation for ThreeDimensions

LegendsDaD - Mar 3

ThreeDimensions

LegendsDaD - Mar 1

What Is an Availability Zone Explained Simply

Ijay - Feb 12

Is Google Meet HIPAA Compliant? Healthcare Video Conferencing Guide

Huifer - Feb 14
chevron_left

Related Jobs

View all jobs →

Commenters (This Week)

1 comment
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!