py3d is a pure and lightweight python library of 3d data structures and functions, which can deal with points, lines, planes and 3d meshes in batches, and also visualize them. All the actions can be done in a jupyter notebook.


Keywords
3d, jupyter, py3d, python, rotation, simulation, visualization, web
License
xpp
Install
pip install py3d==0.1.49

Documentation

py3d

py3d is a pure and lightweight python library of 3d data structures and functions, which can deal with points, lines, planes and 3d meshes in batches, and also visualize them. All the actions can be done in a jupyter notebook.

Code | Docs

Now supported features includes:

  • read/visualize ply
  • read/write/visualize npy
  • read/write/visualize csv
  • read/write/visualize pcd
  • apply rotation/translation/scaling on vectors
  • compose or decompose different transforms
  • conversion between rotation matrix, angle axis, quaternion, euler angle and rotation vector

It is under development and unstable currently. But it is designed to be simple, stable and customizable:

  • simple means api will be less than usual and progressive
  • stable means it will have less dependeces and modules, and it will be fully tested
  • customizable means it will be a libaray rather than an application, it only provide data structures and functions handling basic geometry concepts

Installation

pip install py3d

Example

import py3d
import numpy
cars = py3d.cube(0.5,0.2,0.3) @ py3d.Transform.from_translation(y=range(1,6), z=0.15)
cars.paint()
t = 0
dt = 0.1
while t<4:
    py3d.render(cars, t=t)
    cars @= py3d.Transform.from_rpy(py3d.Vector3(z=dt * numpy.linspace(0.1,1,5)))
    t += dt
py3d.show()

example

API reference

Vector Vector3 Vector4 Transform Rotation Color

Top