Skip to main content

octarine banner

Octarine is the eighth color of the Discworld's spectrum, which is described as the color of magic itself. Only wizards and cats can see it.

docs

Octarine

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 :thought_balloon:

Why another 3D viewer? There are 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 REPL.
  3. High performance: a mesh with 15M faces renders with 80 fps at 1080p on a 2023 MacBook Pro.

Installation :rocket:

pip install "octarine3d[all]"

This will install the minimal requirements plus PySide6 and jupyter_rfb as window managers for IPython/shell and Jupyter, respectively. Check out the Install Instructions for details.

Quickstart :fire:

# Create a Viewer instance
from octarine import Viewer
v = Viewer()

# Add random points as scatter
import numpy as np
points = np.random.rand(10, 3)  # 10 random points
v.add(points)

# Clear scene
v.clear()

# Add a mesh (see also `Viewer.add_mesh`)
import pygfx as gfx
m = gfx.geometries.mobius_strip_geometry()
v.add(m, color='b')

# Close the viewer
v.close()

[!NOTE] The above example will work in interactive environments such as IPython and Jupyter. When using from the standard REPL or when running as a script you will have to additionally start the event loop. Please see corresponding the section in the Introduction.

demo gif

Want to learn more?

Head over to the Documentation!

Want to contribute?

We welcome all kinds of contributions. For example:

  • reports of bugs, broken examples, etc.
  • feature requests
  • pull requests with bug fixes or new features

If you already know what needs doing, feel free to open a pull request right away. When in doubt please open an issue so we can discuss the best way to address the issue.

Development :dash:

Tests

We're currently running only a very limited test suite. What's there can be run with:

pytest -v

Docs

To generate the documentation:

pip install -e .[docs]
mkdocs build

Release files for octarine3d 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for octarine3d 0.8.0
File Size Uploaded
octarine3d-0.8.0.tar.gz 112.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for octarine3d 0.8.0
File Interpreter ABI Platform
octarine3d-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 221.5 kB

Release files / octarine3d-0.8.0.tar.gz

Download URL octarine3d-0.8.0.tar.gz
Size 112.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4a8f62dd76685783b46ed1a97cce35ee11a3c3d3f75c6ff8bd243607047a1ea3
BLAKE2b-256 checksum
How to use checksums
4accadb5c83af50909be28cd2c3558bd1538be872eb6bdc75c9529a9f492044e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / octarine3d-0.8.0-py3-none-any.whl

Download URL octarine3d-0.8.0-py3-none-any.whl
Size 109.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
651eb0bfbb666f9d1a74c7466023efdbd7710605ca388b674e28433d0997ea09
BLAKE2b-256 checksum
How to use checksums
28d41756c9608fde1cf6b6bc0ca672fb3242b36b7d04fc44c69f6f67ffe88209
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page