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.1.tar.gz (765.2 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.1-py3-none-any.whl (781.6 kB view details)

Uploaded Python 3

File details

Details for the file vixar-1.0.1.tar.gz.

File metadata

  • Download URL: vixar-1.0.1.tar.gz
  • Upload date:
  • Size: 765.2 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.1.tar.gz
Algorithm Hash digest
SHA256 137847803c5aa143bde3cff959a8776ec1662f571dbb320c9ef16de682974056
MD5 9c734919ae5ef5f368f6c1db39039042
BLAKE2b-256 4190daae4801029cf0eafff6d61ba4ee2d1815c3f2b73343a0d7883bc076d706

See more details on using hashes here.

File details

Details for the file vixar-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: vixar-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 781.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a7bfc9da79d3348f06f5ecaa47996cb956814c3eb48c3b4d7010fd35b1fd0c56
MD5 5de7ffb11f143a536c8aec4c9545c2db
BLAKE2b-256 fc5662313762c6d836db0932c428605c064dc29ff79ae7f772c9b8546c8b968d

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