Proprietary geoscientific 3D/2D visualization engine, distributed as a Python library.
Project description
Vixar
Proprietary geoscientific 3D/2D visualization engine for Python.
Vixar renders point clouds, boreholes, block models, surfaces, and volumes in WebGL2 — inside a Jupyter notebook, a local browser, or a self-contained HTML file. No Node.js required; the engine ships pre-built inside the wheel.
import vixar as vx
viewer = vx.Viewer(theme="dark")
viewer.add_point_cloud("survey.las", color_by="elevation", cmap="spectral")
viewer.serve() # local web server — opens http://localhost:8050
# viewer.show() # inline Jupyter / VS Code widget
# viewer.to_html("scene.html") # standalone HTML file
Install
pip install vixar # core
pip install "vixar[las]" # + LAS / LAZ point-cloud reading
pip install "vixar[all]" # + LAS, LAZ, and mesh formats (meshio)
Features
- Full geology geometry suite — point clouds (inline + streamed), boreholes, block models, ore bodies, surfaces (OBJ / GOCAD TS), volumes, isosurfaces.
- Scales to 20+ GB via spatial tiling, octree frustum-culling, LOD, and an LRU tile cache with optional IndexedDB persistence.
- LAS / LAZ support — reads LAS 1.x–1.4 and LASzip-compressed LAZ files
transparently with the
vixar[las]extra. - Interactive tools — slicer planes, split-pane cross-section, distance and angle measurement, 3-D annotations, slicer animation.
- Rust/WASM acceleration for LAS parsing and Marching Cubes (≈2–5× faster).
- Export — high-res PNG screenshot, WebM video via
record_video(), standalone HTML viato_html(). - Accessible — ARIA-labelled controls, keyboard shortcuts, high-contrast mode
(
Hkey orviewer.set_high_contrast(True)), graceful WebGL2 fallback. - Full UTM support — float64 in Python, camera-relative float32 in the GPU; no precision jitter at any scale.
Quick examples
Tiled streaming (large datasets)
from vixar.tiler import tile_point_cloud
# Pre-tile once (can be done offline)
tile_point_cloud("large_survey.las", output_dir="./tiles/", tile_size=100.0)
viewer = vx.Viewer()
viewer.add_tiled_point_cloud("./tiles/meta.json", name="Survey")
viewer.serve()
Block model + isosurface
import numpy as np
viewer = vx.Viewer()
viewer.add_block_model(
df, # DataFrame with x, y, z, au_ppm columns
x_col="x", y_col="y", z_col="z",
value_col="au_ppm", cmap="hot",
block_size=(10, 10, 5),
)
viewer.add_isosurface(grid, threshold=0.5, name="0.5 g/t shell")
viewer.serve()
CLI tiling
vixar tile survey.las --output ./tiles/ --tile-size 100 --color-by intensity
Keyboard shortcuts
R reset · T/F/S/I axis views · P split-pane · [/] nudge slicer ·
M measure · Space play/pause · H high-contrast · Ctrl+S screenshot ·
F3 dev overlay · Esc cancel
Documentation
Full API reference, architecture notes, and format support: omkar3344.github.io/Vixar
Development
pnpm install
pnpm build:viewer # compiles viewer.js → python/src/vixar/static/
cd python && pip install -e ".[dev]"
pytest
pnpm test # JS unit tests
pnpm test:e2e # Playwright E2E (4 browsers)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vixar-1.0.2.tar.gz.
File metadata
- Download URL: vixar-1.0.2.tar.gz
- Upload date:
- Size: 782.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.17.0 {"ci":true,"cpu":"x86_64","distro":{"id":"noble","libc":{"lib":"glibc","version":"2.39"},"name":"Ubuntu","version":"24.04"},"implementation":{"name":"CPython","version":"3.12.13"},"installer":{"name":"hatch","version":"1.17.0"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.12.13","system":{"name":"Linux","release":"6.17.0-1015-azure"}} HTTPX2/2.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65a3cb14e0a26b79377d3a49a81c1591336753b7a55c3de7634f2852a5564939
|
|
| MD5 |
bdaad5f9b9a8ebe9f238fba0954652f8
|
|
| BLAKE2b-256 |
f39f2ecf44423bcbb56071e756d30afa93c5b0a9daa8118d21ced54dea9dbb89
|
File details
Details for the file vixar-1.0.2-py3-none-any.whl.
File metadata
- Download URL: vixar-1.0.2-py3-none-any.whl
- Upload date:
- Size: 799.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.17.0 {"ci":true,"cpu":"x86_64","distro":{"id":"noble","libc":{"lib":"glibc","version":"2.39"},"name":"Ubuntu","version":"24.04"},"implementation":{"name":"CPython","version":"3.12.13"},"installer":{"name":"hatch","version":"1.17.0"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.12.13","system":{"name":"Linux","release":"6.17.0-1015-azure"}} HTTPX2/2.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
974a8a3e7beb54e85e54d02c51ca70d77382e123d0f502c6c7d7e1d45b9a8a46
|
|
| MD5 |
4fcbe3348e21464a97f395a86a8000d4
|
|
| BLAKE2b-256 |
8f5800d88c0477cb774dd212b83d958b32d9b202b32a4bba1057def014a0eb1f
|