Aukio — System for Data Storage, Computation, Exploration and Interaction

Table of Contents

1. Vision

A tool to amplify human ability

The goal is a bicycle for the mind — a powerful, extensible, hackable, general-purpose computing environment for working with knowledge.

The system is built around the following priorities:

  • Knowledge-first. Data and insights should be easy to discover, understand, manipulate, transform and visualize.
  • Intuitive, visual, real-time, 3D-first interface.

    "Virtual reality holds the key to the evolution of the human mind." — Dr. Lawrence Angelo, The Lawnmower Man (1992)

Why "Aukio"? Years ago, inspired by the ideas behind the Forth programming language, I created my own implementation called Fifth — a low-level computing and programming environment. Forth and Fifth felt too close to the metal, so this project is an attempt to build something higher-level in Java. The name follows naturally: Forth → Fifth → Aukio.

1.1. Extensible, Programmable Computing Environment — An Example

GNU Emacs is perhaps the best existing example of this philosophy. At its core, Emacs is a text editor built on top of a Lisp runtime. Data storage and computation can be expressed in Lisp, which is itself a programmable programming language — new paradigms and domain-specific languages can be added dynamically. Text buffers serve as building blocks for arbitrary user interfaces. The result is an environment that can be adapted and extended to fit virtually any problem domain.

1.2. Architecture and Components

  • Aukio — Parent project and the product: a spatial computing environment (3D virtual workspace).
    • Aukio Data — Data storage and computation engine. (Very early stage, nothing to see yet)
    • Aukio 3D — Real-time 3D engine for user interface and data visualization. (Working and usable, fast evolving)
      • Aukio 3D Demos — Demonstration scenes showcasing the capabilities of the Aukio 3D engine. (Many demos, in good shape)

The system is far from complete — the scope is large and available time is limited.

1.3. Roles and boundaries

  • Aukio 3D is a reusable library. Anyone can take it to build games or visualizations. It keeps only generic mechanisms: the renderer, scene graph, camera, input primitives, and the widget layer (GuiComponent, TextCanvas, TextEditComponent) that games can also use (in-game consoles, interactive screens).
  • Aukio is the concrete product built on that library: the virtual workspace you actually work in. Application-integration bridges (PTY/terminal, future VNC client, window capture) live here. Exception to the "no native code in the engine" rule: XR glasses head tracking (RayNeo IMU over hidraw, eu.svjatoslav.aukio.e3d.gui.headtrack) lives in the ENGINE, so every app and demo gets look-around head tracking automatically when glasses are plugged in — including hot-plug at runtime.
  • Aukio 3D Demos remains the capability gallery and regression harness. Workspace features are prototyped as demos, but the real thing lives in Aukio.

1.4. Virtual workspace

Aukio is a spatial computing environment: a persistent 3D world where every program you use — text editor, terminal, browser, virtual machine, data view — is a virtual object you place, walk to, and work at. It replaces window-switching with spatial memory: related tools live near each other, and your body remembers where things are.

Roadmap for external applications, from cheapest to most general:

  • Virtual machines — talk VNC/SPICE to the guest display instead of scraping a window; the protocol provides both framebuffer updates and input injection.
  • Arbitrary Linux applications (browser, etc.) — run the app on a dedicated Xvfb display, capture pixels via XShmGetImage, inject input via XTEST; the app lives only inside the 3D world.

2. Ideas

2.1. Molecular dynamics integration

Integrate with GROMACS or a similar molecular dynamics simulator.

Users could place atoms in molecular dynamics models and manipulate them directly with hand gestures (in VR) or mouse drag-and-drop (desktop), seeing immediate force-based reactions. in 3D, the simulation becomes a tangible object you "hold" and adjust.

Teams in VR could jointly manipulate a protein model while viewing real-time simulation data, with each member's avatar contributing to the workspace.

2.2. Emacs client integration

Allow Aukio to act as an Emacs client, connecting to a running Emacs instance. Text editors could then be spawned as objects in 3D space, each backed by the live Emacs process. This would make all existing Emacs plugins and functionality available inside the Aukio environment.

2.3. Document represented as geometry

Text editors would be replaced by floating 3D "cubes" where code structure is visualized spatially - functions as connected nodes, dependencies as glowing wires. Moving a function node would automatically rewire related components, making refactoring a spatial act. In 2D, this requires mental mapping; in 3D, the structure is visible and manipulable.

Ideas in Obsidian-like systems could be arranged in 3D mind maps where proximity indicates relevance - clicking a node pulls connected documents into view, creating a navigable "knowledge landscape".

2.4. Electronics circuit simulation integration

Integrate with ngspice, SPICE, or a similar electronics circuit simulator, enabling interactive circuit design and simulation in 3D.

A circuit designer using ngspice could place resistors/capacitors in 3D space, connect them with virtual wires, and simultaneously visualize current flow as animated particles while overlaying Pandas-generated performance metrics. This eliminates context-switching between tools - data, simulation, and visualization coexist in one spatial workflow.

This would provide contextual continuity. Related tools (e.g., a simulation and its data analysis) can be spatially adjacent in space, avoiding the "window-switching" friction of 2D desktops.

2.5. 3D visualization of statistical data

Dataframes from Pandas would render as 3D grids where rows/columns occupy spatial axes. Dragging a region of the grid would instantly filter related data. Unlike 2D tables where multidimensional relationships are flattened, 3D preserves natural spatial relationships- e.g., high-value data points "tower" above low-value ones, creating intuitive topographical insights.

A 3D scatter plot shows all variables simultaneously; rotating it reveals patterns invisible in 2D projections.

Students could "walk through" a dataset experiencing trends as spatial terrain rather than abstract graphs.

3. Source code

This program is free software: released under Creative Commons Zero (CC0) license

Program author:

Getting the source code:

Created: 2026-09-20 su 00:35

Validate