SamuKata
Lu Wilson
Lu Wilson

patreon


TODEPOND TIMES: Arroost

Welcome back to another weekly edition of the

🐸 TODEPOND TIMES 🐸

What's new this week?

Well... nothing. Because I'm on holiday. So instead, Buckle up! Let's learn Arroost.

(diagrams drawn in tldraw.com for illustrative purposes only)

Arroost

I'm making a thing called Arroost.

Nogan

Arroost is a new kind of machine. It's a nogan.

Layer

In a nogan, everything needs to be inside a layer. Even layers need to be inside layers.

That sounds impossible right? How can we ever make a layer if that layer needs to be inside a layer, which needs to be inside a layer, which needs to be inside a...

Phantom

We can't make an infinite nest of layers (right?), so instead, let's make a phantom layer.

A phantom can cheat. It doesn't need to be inside a layer.

So we can use a phantom as the "top layer". But really, we can think of it as an infinite nest of empty layers.

Children

We can create things inside our layer. Those things are considered "children" of the layer. The layer is their "parent".

And hey, there are two types of children: nods and wires.

Nod

A nod is a thing. It just sits there, doing nothing.

(Why is it called "nod", and not "node"? That's because "node" already means something in many languages, and I don't want to confuse the terms.)

Wire

A wire points from one nod to another. That's it.

We refer to these connected nods as "source" and "target". A source points to a target.

Pulse

We can add a pulse to a nod. When we do this, the pulse spreads to everything it points to (through wires). This happens instantly.

The process of adding a pulse to a nod is known as "firing". When we fire a nod, we can say that it also "fires" its target.

By the way, in Arroost, you can fire a nod by clicking it.

Advance

We can advance the layer to the next beat. When we do this, all pulses end.

Following everything so far? Tricky bit coming up...

Wire Colour

Wires can be red, green, or blue. When a pulse travels through a wire, it can only travel through further wires of that colour.

For example, if a pulse travels through a red wire, it can't travel through any further green or blue wires. This helps you to control the flow of pulses a little bit.

Nod Type

There are different types of nod. For example, in Arroost, we have a "creation" nod, a "destruction" nod, a "magnet" nod, and many more.

Nods still don't do anything. They just sit there.

Pulse Type

There are also different types of pulse. For example, in Arroost, we have a "creation" pulse, and a "destruction" pulse. But please note... there isn't a pulse type for every nod type. We just name some of them the same thing to show that they relate to each other. But this isn't required!

Pulses can do things. We can program what pulses do by deciding how each pulse type "behaves".

For example, when a "destruction" pulse ends on a certain type of nod, it might destroy it. We can program them to do different things depending on the situation. Maybe we want some nod types to be indestructible... Maybe we want some nod types to cancel the destruction pulse...

No matter what, it's the pulse that decides what to do. The destruction pulse chooses how to behave based on what its surroundings are in the nogan. (Kind of like a cellular automata).

How are you doing? Do you need to re-read anything? It's about to get a bit weirder.

Timing: Later

You can change the timing of a wire. By default, they spread the pulse instantly. But you can make it take longer.

For example, you can make it fire its target one beat *later*. This means that, when you fire a nod, it doesn't fire its target until the next beat.

You can connect a chain of nods to fire in order.

Or create an infinite loop by looping the chain around.

Or connect a nod to itself to make it fire forever.

Timing: Before

In exactly the same way, a wire can fire its target one beat *earlier*.

This might sound impossible, but we can sometimes figure out when to fire nods based on the future.

Or we can fire nods based on an imagined past.

This is a very simple idea that can create some very unusual circumstances, where things can happen based on things that never exist in the present, only in an imagined future or past. Those things exist outside of time.

This might seem abstract, but we're only just getting started. You can model quite a lot of things with nod(e)s and wires! There's more to come... another time (time) (time) (time)....

Hey thank you so much for supporting me and my projects like Arroost. I hope you enjoy following along with these unusual programming experiments. And I promise you there's a video coming at the end of this! Whatever you're up to, wherever you are, I hope you have a great week 🐸

Days since tode fell asleep: 190
Days since bot went missing: 157

Comments

There's still a trickle of activity going on with it! There are a few other projects that are slightly further along now too. You can find a list of all efforts here: https://github.com/TodePond/DreamBerd/discussions/183

Lu Wilson

just curious, but how is the developmenton dreamberd going. For those guys that are working on it

ZeFroggieOfLatin

Woah. I already want to try this out! 💫

netux


More Creators