Skip to main content

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 via to_html().
  • Accessible — ARIA-labelled controls, keyboard shortcuts, high-contrast mode (H key or viewer.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vixar-1.0.2.tar.gz (782.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vixar-1.0.2-py3-none-any.whl (799.2 kB view details)

Uploaded Python 3

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

Hashes for vixar-1.0.2.tar.gz
Algorithm Hash digest
SHA256 65a3cb14e0a26b79377d3a49a81c1591336753b7a55c3de7634f2852a5564939
MD5 bdaad5f9b9a8ebe9f238fba0954652f8
BLAKE2b-256 f39f2ecf44423bcbb56071e756d30afa93c5b0a9daa8118d21ced54dea9dbb89

See more details on using hashes here.

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

Hashes for vixar-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 974a8a3e7beb54e85e54d02c51ca70d77382e123d0f502c6c7d7e1d45b9a8a46
MD5 4fcbe3348e21464a97f395a86a8000d4
BLAKE2b-256 8f5800d88c0477cb774dd212b83d958b32d9b202b32a4bba1057def014a0eb1f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page