Skip to main content

CubieVis

Qt GUI for cubie: define a system, pick an integrator, enter a batch, solve, view the traces.

Install and run

uv venv; uv pip install -e .[test]
.venv/Scripts/python -m cubievis

cubie[cuda12]/cubie[cuda13] adds a CUDA toolkit when the machine has none.

Worktrees share the main checkout's .venv: python tools/worktree_setup.py (run by orca through orca.yaml) layers a .venv that imports the worktree's src.

Using it

  1. Add system…: equations (dx = ...), a Python f(t, y, p), or a .txt/.py/.cellml file; Parse fills the category tables (CellML shows its parsed equations); Edit system… reopens the current one; Make constant/Make parameter move selected rows, here and on the main window's tables.
  2. Enter y0 and parameters as numbers, lists or numpy expressions; pick grid type, variables to save/summarise (All/None), their cadences, and summary metrics (peaks takes n in its second column).
  3. Pick an integrator (type to search) by Go; step sizes and tolerances sit beside it, All settings… holds the rest; a row passes only when its checkbox is set.
  4. Set timing, directory and results folder; the label by Go estimates runs and disk size; the log shows phase, elapsed time, then the result path. Set y0 from run copies a run's final state into y0.
  5. The viewer opens the batch; summaries are a second dataset in it. X, Y, Z and Sweep each take time, a swept input, or a variable or its first or second time derivative, with log/lin (log by default for log-spaced inputs) and limits. Y (holding time or an input) cycles axis/collapse/animate; Sweep cycles collapse/animate. Lines/Surface switches the drawing; inputs on no axis get sliders; zooming time in 2D reloads that span at finer resolution; hovering names the run. Older dataset.json batches are converted to a store when opened.
  6. File → Save/Load session… keeps systems, inputs and settings in a JSON file.

Layout

Module Role
schema.py Solver settings read from cubie's attrs classes: names, kinds, choices, defaults, applicability per algorithm and controller.
systems.py Build a SymbolicODE from a SystemSpec (equations, Python source, CellML); category tables.
inputs.py Values text and data files to arrays; DriverSamples; final states from a saved batch.
estimate.py Run count and on-disk size estimates shown beside Go.
session_store.py Session save/load as JSON.
jobs.py The one worker thread for cubie calls; phase and elapsed time from default_timelogger.events.
run.py Go: build_grid, solve, write the store.
store.py Batch store: raw (run, time) traces per variable plus min/max pyramids of the values and their first two time derivatives; windowed line queries; dataset.json import.
view_model.py Axis choices to lines, frames, colours, world coordinates and ticks.
session.py Built systems, the current solver, the worker.
widgets/ One Qt module per pane; no cubie calls outside the worker. The viewer pane draws with fastplotlib.

Tests

NUMBA_ENABLE_CUDASIM=1 .venv/Scripts/python -m pytest --ignore=tests/gui/test_main_window.py --ignore=tests/gui/test_viewer_pane.py
.venv/Scripts/python -m pytest tests/gui/test_main_window.py tests/gui/test_viewer_pane.py tests/test_run.py   # GPU, needs a display
.venv/Scripts/python bench/speed_check.py store|render <batch>     # store build and raw render timings
.venv/Scripts/python bench/viewer_check.py <batch> <store>         # each viewer mode

AI slop warning

Any AI input into Cubie is reviewed line-by-line, so it is largely slop-free and the poor design choices are all human-made. This GUI did not get the same degree of human care - if it steers cubie, is usable, and looks ok, then it is clean enough. The code is therefore an AI wasteland - it will get cleaned up when it starts to fight development, not before, so read it at your peril.

Metadata

Release files for cubievis 0.0.1

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

Source distribution (sdist)

Source distribution for cubievis 0.0.1
File Size Uploaded
cubievis-0.0.1.tar.gz 71.3 kB Details

Built distribution (wheel)

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

Total release size: 130.7 kB

Release files / cubievis-0.0.1.tar.gz

Download URL cubievis-0.0.1.tar.gz
Size 71.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3d826bf695b3ab9668748e9e04ef8291c07bd9993d8ac313843b31857dde8c4f
BLAKE2b-256 checksum
How to use checksums
b70d7c6d5d2b674a6dbc202137acc468673011040ecb7bcf436ce30fe9b521d5
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 6, 2026.

Transparency log

Release files / cubievis-0.0.1-py3-none-any.whl

Download URL cubievis-0.0.1-py3-none-any.whl
Size 59.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79f49e311f93c934617ec0e3a90698990121878a240604b82caf1cb41c3b408d
BLAKE2b-256 checksum
How to use checksums
148a68e8978ce2f8bedcd965d9cb387a169ee57eb00c7fc6d108671a9a341d20
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 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

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