Skip to content

banner

Overview#

A minimalist, easy-to-use, high-performance 3D viewer. Octarine is build on top of the excellent pygfx WGPU rendering engine which does most of the heavy lifting - we're simply abstracting away some of the boiler plate code for you.

Rationale 💭#

Why another 3D viewer? There are already plenty options out there: vedo, ipygany, polyscope, napari, fury, plotly or pyvista to name but a few. All of these are great in their own right but I wanted something (a) without heavy dependencies (i.e. no VTK), (b) that lets me interactively explore my data in both REPL and Jupyter and (c) is very performant. None of the existing solutions ticked all those boxes for me.

Octarine tries to fill that gap:

  1. Lightweight with very few direct or indirect dependencies
  2. Works in both Jupyter and Python shell (e.g. IPython)
  3. High performance: a mesh with 15M faces renders with 80 fps at 1080p on a 2023 MacBook Pro

Example#

import octarine as oc
import trimesh as tm

# Load an example from trimesh
meshes = tm.load_remote(
    'https://github.com/mikedh/trimesh/raw/main/models/CesiumMilkTruck.glb'
    )

# Open a fresh viewer
v = oc.Viewer()

# Add mesh to viewer
v.add(meshes)

example

What next?#

  • Install


    Instructions on how to install Octarine.

    Installation

  • Viewer Basics


    Learn about using Octarine in different environments.

    The Basics

  • Objects


    Check out the guide on different object types.

    Adding Objects

  • Animations


    Add movement to the viewer.

    Animations

  • Control


    Learn how to control the viewer, adjust colors, etc.

    Controls