Skip to main content

Professional 3D Modeling Engine & SDK

Project description

ThreeDimensions

ChatGPT Image Mar 1, 2026, 09_40_22 AM

Professional 3D Modeling Engine & SDK

ThreeDimensions is a high-performance, hybrid C++20/Python 3D modeling library designed to provide a complete toolset comparable to Blender's modeling capabilities. It features a modern C++ core for heavy lifting and a flexible Python SDK for scripting and tool development.

Features

  • Hybrid Architecture:
    • C++20 Core: High-performance mesh kernel, geometry processing, and math engine.
    • Python SDK: Object-oriented API, scene graph, and modifier system.
  • Mesh Engine: Efficient topology, support for N-gons, and large mesh optimization.
  • Modeling Tools:
    • Primitives: Cube, Sphere, Cylinder, Cone, Torus, Plane.
    • Edit Mode: Vertex/Edge/Face operations (Extrude, Bevel, Inset, etc.).
    • Advanced: Booleans, Subdivision Surface, Decimate, Remesh.
  • Non-Destructive Workflow: Modifier stack system (Subdivision, Mirror, Array, Boolean).
  • Scene System: Hierarchical scene graph, object instancing, and collections.
  • Export: OBJ, STL support.

Project Structure

ThreeDimensions/
├── cpp_core/           # C++20 Core Engine
├── python/             # Python SDK
├── examples/           # Usage examples (chair.py, baseball_bat.py)
├── LICENSE
├── Manual.md
├── CMakeLists.txt
├── README.md
├── pyproject.toml

Build Instructions

Prerequisites

  • CMake 3.15+
  • C++20 compliant compiler (GCC 10+, Clang 10+, MSVC 2019+)
  • Python 3.11+
  • pip

Building from Source

  1. Clone the repository:

    git clone https://github.com/LegendsDaD/ThreeDimensions.git
    cd ThreeDimensions
    
  2. Install dependencies and build the Python extension:

    pip install .
    

    If a C++ compiler is not found, the library will fallback to a pure Python implementation automatically.

Usage

See manual.md for detailed documentation.

import threedimensions as td

# Create a scene
bat = td.Mesh.create_cylinder(radius=0.15, height=1.0)
bat.save("bat.obj")

Authors

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

threedimensions-0.1.0.tar.gz (6.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

threedimensions-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

threedimensions-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (114.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

threedimensions-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

threedimensions-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (114.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

threedimensions-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

threedimensions-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (114.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

threedimensions-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

threedimensions-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (114.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

threedimensions-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

threedimensions-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (114.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file threedimensions-0.1.0.tar.gz.

File metadata

  • Download URL: threedimensions-0.1.0.tar.gz
  • Upload date:
  • Size: 6.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for threedimensions-0.1.0.tar.gz
Algorithm Hash digest
SHA256 91101eea69eca1758b7b2d14a30c7f5e7e35b49f9183e9e0c51f0ce6389d99d2
MD5 ccdf70022cacc7ddd8a745c623f1fe9d
BLAKE2b-256 7b9c21a5a838950e0f5be82ee2e218492038207f95ce233c1da013ae14d3eff9

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0.tar.gz:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 491c4003e6f9a4b609a4b18c1ca1a603dbd49a93ed91fc6f0b1c00a4b796343c
MD5 c6d40daf5cc204ea91498ab1e27d412d
BLAKE2b-256 db8e9dfd2071b80335997b043741337e3d9e4acf5c8fcbec20a5ba7e07e37398

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 46ef63a391cd38561f4f1de38412aca9115103edb7bd2aedb55993106e33c392
MD5 e8bb597f61bfa617dc86e41eafd68071
BLAKE2b-256 71fba2c380fc54e72be2830cd4f20212d1e02ddaadb4bed80c4e8f2e6294396b

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d291f72bd8c71aba888addcc5732d4765e9fa9607395582d60c4d2946ee1592f
MD5 eab9b0169c1411f14c4db4c1989f7958
BLAKE2b-256 e95ea5372c7a520b80a76b5a8ec5e7eac7014b161b28f421c75e0ed723e6a8af

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e06310da53c8daa67c6f187c80df4f8a5cf57eac0cdd22be5c5debe8eeb10758
MD5 c417cf8df7bb818c1beb435af5b04cb2
BLAKE2b-256 3b13adb885214e2318f73e4d5099e742be575558d2e81d6065249f6ab8f46a9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b9837a7c7dd6ff9e1905df7950a23f9f344821cb2d66205b65b46f60e708f9c8
MD5 653ef127eb00d9a479bc0ae631802107
BLAKE2b-256 17ee4405fe6f2a547aa902dd595ea761ec1f26bb44376175005b3159bd8c369a

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac8e604e853d921f4d3a73b4c61340c3e49618d554a8d6b8276732703b63a253
MD5 61560f64b30f00e8ea941633b24973bd
BLAKE2b-256 0b0824c9949dc22737135c9713706b159c5e0a5a832e4ae94f31ca4b6d974660

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cb8f357938e849b8b732ae576aab82fa69df3a9d202093f3b00e7b7d4a653bf6
MD5 8f24b15dc1a0d0c6237287b14be19662
BLAKE2b-256 ba2b9257fd5fbbe31bfb392489bbeacd56a1eafbed0ce5243e4001e808f5a73d

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64d427b103b3f232678e52e6073b9d13482b68387c70ddecb3489c99fc8990b6
MD5 1632187d5933c22b08617d0f315b8b00
BLAKE2b-256 0a2b80f2fbc86108196ae4fe22e4534b6983097c3a059f96233c3a3a7ac03476

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a7cacffcd61d3b4c1603b218180b6aa95a3f4a8678ba562313d7ffcdbee1961
MD5 d9fe0d818eb4400bc8a5795a6dc6282e
BLAKE2b-256 fd6e7219a9019a64d7252af28393690f8cba63db8ef1ccf8ad7ee06bd0a1f23d

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file threedimensions-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for threedimensions-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 41c3fcf76acb1f0681a9ec1dea5a8903fdda49b7a59ff90af9a1ea074b5eeb71
MD5 7b5d42baca167209231d969d6541dfe8
BLAKE2b-256 604c983a42eb4063b5cc145855c7a58048daaec8ab71ca300bbee83862524a66

See more details on using hashes here.

Provenance

The following attestation bundles were made for threedimensions-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LegedsDaD/ThreeDimensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page