Axonometry Documentation#
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.
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()