Scripting library for generating axonometric drawings.
Project description
Contents
What is axonometry?
Computer graphics meets architecture representation meets generative art.
axonometry is the tip of the iceberg of a PhD project at the AlICe laboratory. It is the result of a practical experimentation with questions related to the field of architectural representation, the role of computer graphics and drawing practices.
axonometry is a proof-of-concept about a certain way of constructing 3D representations by projection.
axonometry is a scripting library for generating axonometric drawings. It implements axonometric projection operations commonly used in the context of architectural representation. axonometry allows the exploration of three dimensional representation through the definition of projection operations. Think of it as a tool for generative drawing, oriented towards architectural representation.
How does it work?
axonometry is basically a wrapper for compas geometry objects and produces SVG vector files with the help of vpype.
Examples
from axonometry import Axonometry
Axonometry(15,45).save_svg("new_drawing")
from axonometry import Axonometry, Line, Point
my_axo = Axonometry.random_angles()
my_axo.draw_line(Line(Point.random_point(), Point.random_point()))
my_axo.draw_line(Line(Point.random_point(), Point.random_point()))
my_axo.draw_line(Line(Point.random_point(), Point.random_point()))
my_axo.show_paths()
from axonometry import Axonometry, Line, Point
my_axo = Axonometry.random_angles()
l_xy = my_axo.xy.draw_line(Line(Point.random_point("xy"), Point.random_point("xy")))
l_xy.project_into_surface(distance=50/2, length=50)
l_yz = my_axo.yz.draw_line(Line(Point.random_point("yz"), Point.random_point("yz")))
l_yz.project_into_surface(distance=50/2, length=50)
l_zx = my_axo.zx.draw_line(Line(Point.random_point("zx"), Point.random_point("zx")))
l_zx.project_into_surface(distance=50/2, length=50)
my_axo.show_paths()
from axonometry import Axonometry
my_axo = Axonometry.random_angles()
my_axo.import_obj_file("./examples/monkey.obj")
my_axo.show_paths()
Installation
Please refer to the install section for detailed installation instructions.
TL;DR:
Python 3.12 is recommended, but axonometry is also compatible with Python 3.10 and 3.11.
uv is the recommended package manager.
# Install uv on Linux and macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install uv on Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Get Python 3.12
uv python install 3.12
# Make virtual environment
uv venv
# Install axonometry
uv pip install axonometry
Contributing
All type of feedback is welcome. Contributions can take any form and do not necessarily require software development skills! Check the Contributing section for more information.
Acknowledgement
Many thanks to the developers of compas and vpype. Not only did their libraries make this project possible, but inspecting their elegant codebase was an invaluable resource for deepening my Pyhton knowledge.
License
This project is licensed under the GPLv3 License. Check the Liceneses section for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file axonometry-0.1.4b9.tar.gz.
File metadata
- Download URL: axonometry-0.1.4b9.tar.gz
- Upload date:
- Size: 30.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddedc45b1622b121226ff5d53315166a816f559ec0bc5567b43ccd1f01ee7b09
|
|
| MD5 |
fa9a7332bf32a70d9636181ea7a9da8e
|
|
| BLAKE2b-256 |
b8c38f7aedcb7f5f64d0fca7e98c96aeb9e8394d6e45927a40837e37f088aefd
|
File details
Details for the file axonometry-0.1.4b9-py3-none-any.whl.
File metadata
- Download URL: axonometry-0.1.4b9-py3-none-any.whl
- Upload date:
- Size: 31.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
887b9c481dc227d10275e7ad1c61ba00b629c2c13b3a772f03d6662915444f23
|
|
| MD5 |
6d5fec8631ba928e9b1591b1173eee28
|
|
| BLAKE2b-256 |
e19103c24f038e7f5c26c365dbe779dc6636cabc6362def868ce1f7fe7ab875a
|