Go to file
2023-01-02 23:13:51 -07:00
assets WIP in the direction of the graphics device 2022-12-29 01:16:43 -07:00
doc And passing all stock(ish) test cases 2022-12-26 01:19:08 -07:00
resources/test And passing all stock(ish) test cases 2022-12-26 01:19:08 -07:00
src There are now unimplemented opcodes 2023-01-02 23:13:51 -07:00
tests Clippy fix 2022-12-26 10:29:01 -07:00
.gitignore Getting started 2022-12-10 12:51:31 -07:00
Cargo.lock WIP in the direction of the graphics device 2022-12-29 01:16:43 -07:00
Cargo.toml WIP in the direction of the graphics device 2022-12-29 01:16:43 -07:00
LICENSE.md Getting started 2022-12-10 12:51:31 -07:00
README.md Getting started 2022-12-10 12:51:31 -07:00

Varvara's rusty bicycle

This project is a (re)implementation of the Varvara personal computer in Rust, intended to target WASM and a web browser emulator.

  • Varvara (upstream docs) is an 8bi personal computer reminiscent of video game controllers. Varvara is also a character in Rekka's art; this is her personal computer.
  • Tal (upstream docs) is the reference assembler language for programming. The Tal is a friendly, hoofed quadruped implied to be helping Varvara.
  • UXN (upsteram docs) is the instruction set underlying the Varvara computer.


The entire uxn/tal/varvara stack will likely scan as unusual to professional developers. Why design an 8/16bi microarchitecture in 202X?

The answer is that varvara is best understood as a political and art project. Devine and Rekka are artists, living on a boat and embracing a minimalist/solarpunk/permaculture politic. While Devine appears to have more professional software development experience than they let on, the entire project is amateur.

To those who've spent time with computer design, many design decisions in the system may seem odd. Fundamentally the answer to many of the WTFs is that ... varvara isn't designed for that.

Why doesn't it have signed arithmetic? Why doesn't it have memory protection? Why doesn't it have floating point? Why doesn't it have a real multiprocessing/interrupt model? Why doesn't it have a networking model? Why doesn't it have ...

Because it's an unscalable¹ vision of personal computing. It's designed to let a person with limited computing and network resources build their own reality marble of personal software.

"you build your pocket universe, and then in you go"

There's a bunch of software for Varvara, all of which should emphasize this point. Building your own spreadsheet engine is certainly a statement.

Why this project?

Having done some compiler and computer architecture work, the Varvara computer was ... baffling. The documentation is far more artistic than implementer or even user centric.

This project is the results of my effort to reverse engineer and document the Varvara system well enough to re-implement it.

Varvara isn't my vision of my personal computer. I've got different requirements and expectations. But I have a lot of respect for the relative success of the project, especially considering that I've spun my wheels on my own vision for years. So consider this my meditation on an artifact.


This software is released under the Anti-capitalist software license v1.4.