SamuKata
Lu Wilson
Lu Wilson

patreon


TODEPOND PONDCAST: First

Welcome back... to another weekly episode... of the...

🐸 TODEPOND PONDCAST 🐸

What's new this week?

First version

Since last time I mentioned it, more people have contributed to Arroost. For example, nonnullish improved some of its clicking interactions. Thanks to everyone who has got involved so far.

Like I mentioned last week, I did a bunch of work on Arroost (on the plane). And now, this is what it can do:

In Arroost, you can create circle-shaped "cells", and you can connect them together with wires. When a cell 'fires', it fires any other cells that it points to.

And now, you can click on any wire to change the timing of this connection. Pulses can flow forwards or backwards through time.

I did quite a bit of playing around to try to get this interaction right. And I've settled on a system for now! It's probably the simplest option I had.

One thing I'm keeping in mind is: The first version of Arroost isn't how it'll stay forever. As I add more complex features to it, I'll be able to remove some of the placeholder stuff. This will take a long time.

The same thing happened with CellPond. As it grew, I was able to remove some of its earlier clunkier features. You can watch it progress over the course of three videos.

First time

I've written a lot of time-travelling code for Arroost. But it feels very different to fiddle with it by hand.

I'm really pleased with how strange it feels when you interact with it. I think it reminds me of what it was like to play with the froggy time travel engine for the first time, way back when.

It's nice to not understand something you've made. I think that's the joy of things like cellular automatons and fractals. Simple rules lead to surprising effects. Same with time travel!

In the demos I've done for people, I think it's currently interesting for 5 minutes. And then I run out of things to show. That's not very long, but it's a good start! I think that will increase when I add sounds to it.

First

Later in October, I'm presenting CellPond at a tech conference thing. In my application, I claimed that CellPond is "novel". As in, it's brand new. 

A new cellular automata!

One of the reviewers challenged this claim. Is it really novel? Does it really do anything new compared to other spatial programming languages/systems?

It was really helpful feedback, and they explained that were making this claim to try to encourage me to make the demo even better.

Answer: CellPond *is* novel. But I haven't shown it very well (yet).

It's because of three different things:

splitting + merging

You can allocate and de-allocate memory by splitting and merging. Sorry that's a technical term... Let me put that another way.

If I ask you to figure something out in your head... for example... 23 multiplied by 46... You'd need to keep certain things in your head, in your memory. Maybe you'd write something down to help you remember everything all at once.

You'd use as much space as you need on that piece of paper! You'd keep finding more paper if you ran out. And you'd write down as many numbers as you want!

I think it would be harder if I said "you're only allowed to write two digits down in total" or "you have to erase each number before writing the next". That's what it would feel like to be stuck with a small amount of memory.

In CellPond, you're not stuck. You can keep finding more paper by splitting. You can add more and more, until you have so much paper that your table breaks. That's what we call a crash. 

By the way, you can't do this in existing languages/systems. You're stuck with how big the grid is. You can sometimes store extra data *somewhere*, but not a spatial and visual way.

relativity

Does sand fall down into the air?
Or does air fall up into the sand?

In CellPond, it doesn't matter. There's no difference between the two. In every* other spatial programming language/system, it matters! And it can mess up what you're making if you get it wrong.

This doesn't need to be difficult! It's *incidental complexity*.

conservation

How many answers are there to the following question?

"Do you have an apple or a banana?"

There are four answers! yes, no, apple, banana.

There's some ambiguity here that makes it an unhelpful question. We need more clarification.

This question appears in nearly all spatial programming languages/systems. For example, you could give your computer the following instruction.

”If there's a (red or blue) square, place a (red or blue) square below".

What's the best thing to do here? Should the cell from the first part of the instruction be re-used in the second part? Or should it create a brand new colour for the second part? How can we figure out what the user wants?

We could add some more abstract concepts like "swap", but that's harder to do visually.

So CellPond is very opinionated. It assumes that you want things to 'conserve', and not be re-created. If you don't want that, you can easily override it on a case-by-case basis.

And that's why CellPond is novel!

Now I need to figure out how to put that into my upcoming demo. Thanks for helping me with that, and for supporting these projects! And welcome to all the new people this week. Whatever you're doing, wherever you are, I hope you have a great week!

Days since tode fell asleep: 269
Days since bot went missing: 234


More Creators