Revision 8cc3dfbb107668181a34abe2a7b89b57ddd2b36a (click the page title to view the current version)
Changes from 8cc3dfbb107668181a34abe2a7b89b57ddd2b36a to dcfc57322ed41d76906acd23d619d88c6b28a0cb
---
title: Session. 3D Objects in Python
categories: session
---
# Learning Objectives
**Key learning outcome**
Improve the understanding of the mathematical descriptions of
3D Motion, by testing implementations in Python.
**Secondary outcomes**
if you have time, it is worth browsing different libraries and frameworks
to build, visualise, and animate scenes using 3D objects.
# Briefing
## Recap: a simple object
Remember, last week we worked with this data structure in Python:
```
In [1]: print(vertices)
[[-1. 0.5 0.5]
[ 1. 0.5 0.5]
[ 0. -0.5 0.5]
[-1. 0.5 0.5]
[ 1. 0.5 0.5]
[ 0. 0.5 -0.5]
[-1. 0.5 0.5]
[ 0. -0.5 0.5]
[ 0. 0.5 -0.5]
[ 1. 0.5 0.5]
[ 0. -0.5 0.5]
[ 0. 0.5 -0.5]]
```
The rows are points in 3D. Note that there are only four distinct points.
If we divide the matrix into sets of three rows, each triplet defines a
triangle. These four triangles form the faces of an irregular tetrahedron.
This is a standard way to define a 3D object. More complex objects need more
triangles.
Note that the textbook have vertices as *column* vectors, while
we here use row vectors. This means that we need to transpose
matrices when we translate textbook formulæ to python formulæ.
## STL files and the STL library
# Exercise
## Rotations and translations
## Homogenous Coordinates
Motion defined by homogenous matrix
## STL files and the STL library
+ Load Model
+ View Model
+ Change Model
+ Save Model
# Additional Materials
+ [Other relevant python libraries](Python3D)