Skip to main content

Hakowan

Hakowan teaser

Hakowan is a 3D data visualization grammar. It is inspired by the grammar of graphics, and it is designed for easily creating beautiful 3D visualizations.

Install

Hakowan relies on Lagrange for geometry processing and supports three rendering backends:

Backend Description Extra
WebGL (default) Interactive browser viewer — ships with base install (none)
Mitsuba Photorealistic offline renderer hakowan[mitsuba]
Blender Cycles/EEVEE renderer (requires Python 3.13) hakowan[blender]
# WebGL only (default)
pip install hakowan

# Mitsuba backend
pip install "hakowan[mitsuba]"

# Blender backend (Python 3.13 required)
pip install "hakowan[blender]"

# All backends
pip install "hakowan[mitsuba,blender]"

# Add deterministic headless snapshots and multi-view observations
pip install "hakowan[observe]"
playwright install chromium

# Optional dataframe and geometry adapters
pip install "hakowan[data]"

# Agent integration is distributed separately
pip install "hakowan-mcp"

Note that Hakowan requires Python 3.11 and above (Python 3.13 for the Blender backend).

Command line

hkw requires an action. render writes a still image using Mitsuba or Blender, preferring Mitsuba when both are available. One of those optional backends must be installed; otherwise, render reports an error. view creates an interactive WebGL HTML viewer. inspect lists a mesh's attributes, domains, and each channel's min/max without selecting a render backend. Run hkw --help or an action's help for details. --facet-id selects Blender for render and reports an error if Blender is unavailable.

view works with the base WebGL install. render requires the Mitsuba or Blender extra.

hkw render mesh.obj
hkw view mesh.obj
hkw inspect mesh.obj

To check which backends are available in your environment:

import hakowan as hkw
print(hkw.list_backends())

Quick start

The following example renders an interactive HTML viewer using the WebGL backend:

import hakowan as hkw

layer = (
    hkw.layer("mesh.obj")
    .mark(hkw.mark.Surface)
    .channel(material=hkw.material.Diffuse(reflectance="orange"))
)

result = hkw.render(layer, filename="viewer.html", backend="webgl")
# Open viewer.html in any modern browser

render() produces the requested output (an interactive viewer or a Mitsuba/Blender image). For AI or programmatic inspection, use observe() for one or more WebGL views, render passes, and visibility queries. Observation captures independently; it does not require a preceding render. See the rendering and viewers guide.

Agent integration

Hakowan's provider-neutral agent integration is maintained separately in Hakowan/hakowan-mcp. It exposes Hakowan's deterministic inspection, schema, validation, compilation, rendering, observation, camera-fitting, and patch APIs to Copilot, Oh My Pi, and other MCP hosts without adding model-provider dependencies to this package.

Documentation

HTML

@software{hakowan,
    title = {Hakowan: A 3D Data Visualization Grammar},
    version = {0.6.1},
    year = 2026,
}

Metadata

Release files for hakowan 0.6.1

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

Built distribution (wheel)

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

Release files / hakowan-0.6.1-py3-none-any.whl

Download URL hakowan-0.6.1-py3-none-any.whl
Size 794.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d480cb7a50cbe3091f175dec8b1197ebdf30e26284df25f68ec2c41a08233c7
BLAKE2b-256 checksum
How to use checksums
8c8f7712674ecf29fbc2ecfa38170d4f6a57b66733105c00ad9404f16e2b5b3b
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 Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.1 This release

1 release file

0.6.0

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.10

1 release file

0.3.9

1 release file

0.3.8

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.10

1 release file

0.2.9

1 release file

0.2.8

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

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