tsoorrA :SEMIT DNOPEDOT
Added 2023-07-09 12:17:17 +0000 UTC!olleH
*cough*
I mean... Hello! It's the weekly...
πΈ TODEPOND TIMES πΈ
What's new this week?
Ok, Arroost is starting to take shape. So I can now tell you much more about it. Let's dive in...
Part One: Dawn of Arroost
A couple of years ago, I jokingly started thinking up ideas for a video that made heavy use of arrows. My thinking was that, by involving lots of arrows, I could make an eye-catching thumbnail for youtube.
You know, it would be one of those thumbnails with loads of arrows, pointing to some hard-to-see *thing*. And you just *had* to find out what it was, by clicking on the thumbnail, and watching the video.
It's clickbait!
But the funny thing about *this* video... is that it *wouldn't be* clickbait. It's a real thumbnail - of a real video - of a real project.
It was just a joke - I wouldn't actually make it. That would be silly! I'd have to make a truly ridiculous - utterly incomprehensible - entirely ununderstandable - plain stupid
And that's how Arroost was born!
Part Two: Everything
It's nice to have goals.
A while back, I made a cellular automata engine called SandPond. My goal was to let you create things in it - without text. Instead, its language should allow you to make stuff by drawing little diagrams.
It worked! But I left you with an escape hatch. Whenever the language wasn't powerful enough, you could write some javascript instead. It's a *hybrid language* (like JSX).
As I ventured towards making more and more complicated things, I used the escape hatch more and more, which didn't feel great. The whole point of the language was to draw diagrams! not write javascript!
So I came up with CellPond. Its goal would be simple:
Let me make everything I've ever made in SandPond, but without needing the escape hatch.
It worked! But it's only for cellular automatons. Nowadays, I build a bunch of other stuff too. Namely... fractals, and time-travel machines, and that sort of thing.
With those, I'm stuck in javascript land. Because CellPond isn't *for* that!
Here comes Arroost. My goal is to combine everything that I've ever made into it.
Let me play with all of those different concepts, without needing an escape hatch.
I want Arroost to be a general-purpose visual language for all my stuff. We'll start simple, with a very limited range of capabilities. But...
It's an all-star mix. It's the SandPond Saga's "everyone is here" moment (from Smash Bros). Or "avengers, assemble" (from Endgame). Or "call everyone" (from Spy Kids).
Part Three: Backwards
Arroost is a node-based language. This means that you code it by dragging around little shapes, and connecting them with wires.
And Arroost has time-travel baked in. First, let me tell you how it *doesn't* work.
β Arroost does *not* rewind. When some people say that their language can time-travel, they mean that you can put it into rewind, to backtrack what you've already done. It keeps a recording of whatever it does, and you can revisit any point on that recording. It's a great way of debugging your code. But it's not what Arroost does.
β Arroost does *not* reverse. Some languages are reversible, meaning you can always get back to a previous state from the present. For example, you could reverse an "add" operation by "subtracting". Every single operation of the language could have a specified way of reversing correctly. Some cellular automatons are reversible too! But this is *not* what Arroost does.
Instead, all operations can only be done in one direction. When you "create" something, you "create" it for good. The engine doesn't know how to reverse it, and there's no way of knowing what came before.
β Arroost does *not* branch. What I mean is, it doesn't maintain multiple possible scenarios or timelines.
Instead, there is one canonical passage of time. If you interact with the engine, you can change what the future will be. In the exact same way, you can also change what the past was.
You see, the present is known. The past and future only exist in our imagination, and far more malleable.
Most people seem comfortable with the future being changeable, so why can't the past change too? In Arroost, it can!
So how *does* Arroost work? What is it? What does it do?
β
In Arroost, you can...
Unfortunately, we've run out of time this week. Maybe next time (or maybe not).
If you've reached this far, you've made it all the way through the update. I want to thank you for supporting all of these unusual projects, and for following along! I hope you're enjoying it. And... wherever you are in the world, whatever you're doing, I hope you have a great week. See you next time πΈ
Days since tode fell asleep: 185
Days since bot went missing: 150
Comments
That's a really interesting conceptual model of time travel. I've unravelled a few complex films by starting from "what model of time travel might this be using?" instead of trying to mash linear causality into whatever I'm seeing, but "only the present exists and you can navigate in either direction from it" is a new one!
David Hayward
2023-07-12 11:36:29 +0000 UTC!gnitseretnI
Collo
2023-07-10 21:13:38 +0000 UTC