Last week, me and a friend (André Duarte) presented an #art #instalation for the #processing Community Day Coimbra 2021. (@pcdcoimbra)

It's titled TAU-800B.

We put a ton of thought and ideas into it, so I'll be going over them here!

🧵
But first, TL;DR:

TAU-800B approaches the theme of Anachronism in many ways, some literal and some figurative. It is a full emulation of a time traveling computer, that despite having that ability and sporting a retrofuturistic interface, obeys computing paradigms of the 70s.
These strange internals (6 bit words, 6 word stack, assembly only) are fully exposed for the viewer that takes a closer look. Keeping with the 70s theme, there's also a complete reference manual next to the screen, providing further hints on the nature of the artifact.
(If you'd rather hear me talk much too fast, me and André gave a 10 minute talk on the piece as part of the exhibition, linked below; 2h mark.)



(we had to rush a little though, so I'm hoping to get into more detail here.)
OK, onto the actual thread. So, the theme for the call was "Anachronism". That's a term that refers to inconsistencies related to time, like a knight welding a gun, or European Middle-Ages peasants eating potatoes. Think steampunk.
As a word, Anachronism has Greek roots, "ana" + "chronos", or "against" + "time".

We knew from the start that we wanted to explore this meaning figuratively and literally.

On the other hand, #processing is all about computational creativity and integrating code in your art.
Computers against time.
Computers disobeying time.
Time-traveling computers?
This drove us early to the core concept of TAU-800B: a time-travel assisted computer, that would mix old (like, minicomputer old) architecture and I/O with a futuristic interface.

This concept had some nice features:
1. It allowed us to explore both literal and figurative senses of the theme, by incorporating both time-traveling and tech asthetics from multiple eras
2. It gave us a free pass to get some things wrong/too modern; it's an anachronistic artifact after all!
3. It gave...
... a lot of space to create a narrative and an interaction with the audience, in the presentation of the machine to the audience.
4. Lots of cool programming!
We began, then, attacking this concept in multiple fronts: we designed a mockup for the interface, and began writing a reference for the machine's assembly, bringing in ideas for the latter from all of x86, 6502 and Z80A!
You can see also here the first mockup for the interface versus the final one. The core elements (shown state and size details) never changed!

(We featured a clock in the center from the start, given the time theme, and as a way to later do meaningful I/O.)
(A running theme, visual-wise, was the japonese retro-future asthetic. I recently watched Neon Genesis Evangelion, and if there's one thing EVA nails, it's the computer interfaces. On the other hand, it was a further nod to the theme, by using the 90s standard of futuristic...
... rather than a more modern one.)

Mmm, look at that UI.
But what does "time-traveling assisted computer" even mean, I hear you ask? (maybe. humor me.)

Well, both me and André are physicists working in computer science, and it turns out that this is a sufficiently serious question that smart people have thought about it.
In particular, consider the Novikov Self-Consistency Principle. It's basically the stance that you have to consider time as a whole, so that paradoxes are impossible, because things have to make sense, well, as a whole.

Yes, it's the timey-wimey thing.
This turns out to have some interesting consequences for computation:
Consider a computer equiped with a kill-switch, and a time machine. Now give it some really hard problem, and instructions to do the following: first, guess an answer to the problem. Then, if it gets it wrong..
... to go back a moment in time and activate the kill-switch.

Because getting it wrong would induce a paradox, then, physically, it must guess correctly! Congratulations, your machine now has infinite computing power.
Our take on this is that the TAU can write values to its registers at past and future moments.

Of course, seeing that we wanted to emulate the machine, this could've posed some problems. That's where the 70s limitations we imposed came in handy.
As @stevenstrogatz might tell you, if you have some transformation (say, from a machine state at a given moment to the state in the next), that transformation might have what's called a "fixed point": a state that's essentially not affected by the transformation.
A consistent universe (i.e. sequence of machine states) must be a fixed point.

Because the RAM was so small, we could actually keep track of its state throughout a large window of time (say, 500 instruction steps).
So, when we find a temporal addressing, we try to converge towards a fixed point by repeatedly simulating the universe.

Yes, this is confusing. Here's a picture, if it helps:
(this isn't perfect, there's a lot of ways in which this approach can fail: unstable fixed points, interweaving time addressing... But shh, we're the ones that'll be writing the programs to be ran!)

A way this *does* work is in fast-tracking Newton's method 👀
Another thing is that you need to do the above process really fast, so that it looks effectively instantaneous. A convenient segway to discuss the tech we used!
The actual display is driven by electron, because web is super portable, and we weren't sure how the installation would be displayed (aspect-ratio wise, etc.)

However, like I've just said, we needed to be fast, so the whole backend (parsing, emulation) was written in Rust! (...)
We wanted as little computation to be done on the web side (to save time), so all Electron does is poll for state updates, and show the current internal state of the machine.

Here's a diagram me of the tech stack, as well as the text file we were using during development:
(To inferface Rust and JS we used the very good package "Neon".)

neon-bindings.com
Finally, let me talk briefly about the manual.

The most obvious thing about it is that it's in a corkboard (thanks @marianiscas). The second most obvious thing is that one of the pages has coffee spilled on it (thanks lab mates that don't empty the coffee machine).
This was a really fun part of the project, because we wanted to make the guide not just a reference to the assembly language of the machine, but also something with a lot of personality, the same way PDP-11 manuals are super endearing.
(as @ADAMATOMIC would put it, we wanted the manual to be good trash)
Furthermore, there's this underlying narrative we gradually constructed that TAU-800B is a heavily used machine in a lab setting.
To achieve that professional/corporate look, me and André went with LaTeX. However, the printed pages looked way too clean, so we beat them around, scribbled on them, and even spilled coffee on them.

Basically, what you'd expect from a very handled work paper.
(incidentally, my prints of physics papers may not look too different)
This was also a super fun opportunity to weave modern terminology into what is supposed to be an old reference manual. Not to mention the time travel references!

I'm particularly proud of mentions to "Carnot-Landauer-Novikov principle" in the Energetics section.
(I can link a PDF of the manual later.)
The presentation wrapped all of these elements by showing TAU-800B at work, running some assembly that can be checked out pinned on the corkboard.

As a last nod to the theme, what it's doing is displaying the current time, but backwards.
(it then takes the square root of the hours and minutes, just to show off the time travel speed ups. Big thanks to André for his 6-bit assembly calculation magic!)
(we stayed true to the emulation when displaying the time: you have to write the correct bytes to a reserved position in memory, in order to control a virtual 7-segment display 😃)
I think that's all! I'll be happy to answer questions.

We'd love for TAU-800B to be exhibited again, so if you're interested (or know someone who is), let me know!

Link for the manual below shortly.
Here's a link to the manual! Sorry for the watermark, but you know how these things go.

drive.google.com/file/d/1e0hbB9…
Amendment: I totally forgot, how could I! I also referenced a lot of y2k material, especially WipEout and other work by Psygnosis. You can see this mostly in the white lines, but also where I first picked up Eurostyle
@CABB_Coimbra, que vos parece?

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Miguel At Home

Miguel At Home Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(