Browse Search Popular Register Upload Rules User list Login:
Search:
Algonet Glitch -- Run Thyme Code with an Algodoo Computer!

Image:
screenshot of the scene

Author: Little

Group: Default

Filesize: 191.75 kB

Date added: 2025-06-03

Rating: 5

Downloads: 1831

Views: 329

Comments: 15

Ratings: 1

Times favored: 0

Made with: Algodoo v2.2.3

Tags:

Scene tag

Hello again!:D

For a while now I have been aware of a bug within my Algodoo Computers that allows said computer to run any thyme script you want (with limitations of course).

This scene assumes you have used the computer before -- if not, it is booted into a manual that can help you learn how to use it before continuing!

This bug stems from the usage of Algonet, a feature that's been in these computers for quite some time now that allows for persistent storage of data on named files that any Algodoo computer on the same installation of Algodoo can access.

The way it works is simple -- Algonet uses global variables (i.e. variables that persist across scenes) with a naming scheme of algonet_domain_name, where name is the name of the file.

The way the computer does this is also simple -- to read, it simply runs geval("algonet_domain_name"), which simply returns the contents of the file. To write, it runs geval("algonet_domain_name = scene.my.netcache"), for example (note that I haven't actually looked in the code in a while so it might not be named netcache!

Contrary to the name, Algonet does not connect to the internet -- its name is based on the fact that any Algodoo computer within your installation of Algodoo can access it, but don't worry -- your best friend who uses Algodoo as well cannot access them, as they are just regular global variables.



Anyway, you may have noticed a problem with this implementation -- and if you have, good eye!

For reading, it would be fairly trivial to do something after reading the file, as "name" can be anything you like, including thyme scripts.
So, if we try to read the file ";App.GUI.ShowMessage("Hello, World!")", the computer will access the Algonet variable "" and then go on to execute our Hello World script!

In Chives, this would look like this:

set 0 ;App.GUI.ShowMessage("Hello, World!")
netread 1 vr0

This exact program can be found on the Hello, World! floppy.


Note that this should theoretically work in AHOX Basic as well, but because of the way it handles strings it would be quite a bit more complicated -- hence why there aren't any examples...


Before we do anything else, remember how I said "with limitations of course"?
Since the glitch takes advantage of gval, it doesn't have direct access to the actual computer running the code.



But yeah!
I definitely thought this bug was interesting!
It's not practical though, and I don't really know how or why I could fix it:P

You could easily execute Thyme scripts by just opening the script menu on an object or opening the console, no computer required!
You could even put a script inside of a floppy disk, which is a large part of why I really don't think this is worth trying to fix. It's a neat bug, but it's also a very niche bug that can't do anything out of the ordinary.:lol:


Have phun~!
2017 - 2025 Little (AHOX)
Last edited at 2025/06/03 06:36:05 by Little
Please log in to rate this scene
edit
Similar scenes
Title: Algodoo touhou project - Thyme Contest
Rating: 5
Filesize: 25.07 kB
Downloads: 761
Comments: 6
Ratings: 1
Date added: 2015/08/09 15:01:10
Made with: Algodoo v2.1.0
Rating: rated 5
download
Title: Algodoo Will Guess Your Animals
Rating: 5.625
Filesize: 1.24 MB
Downloads: 2484
Comments: 17
Ratings: 2
Date added: 2018/12/21 06:46:01
Made with: Algodoo v2.1.0
Rating: rated 5.6
download
Title: [UNSTABLE] Computer: Xarbian Debut 64
Rating: 5.375
Filesize: 43.29 kB
Downloads: 1344
Comments: 10
Ratings: 2
Date added: 2022/07/01 06:24:23
Made with: Algodoo v2.1.0
Rating: rated 5.4
download
Title: Laser glitch in Algodoo
Rating: 4.5
Filesize: 156.18 kB
Downloads: 301
Comments: 3
Ratings: 2
Date added: 2009/09/24 17:33:55
Made with: Algodoo before v1.8.5
Rating: rated 4.5
download
Title: A glitch I somehow manage to find
Rating: 5
Filesize: 38.9 kB
Downloads: 445
Comments: 6
Ratings: 1
Date added: 2016/05/02 23:31:06
Made with: Algodoo v2.1.0
Rating: rated 5
download
Title: COMPUTER
Rating: 5.625
Filesize: 21.37 kB
Downloads: 745
Comments: 3
Ratings: 2
Date added: 2015/10/13 03:57:30
Made with: Algodoo v2.1.0
Rating: rated 5.6
download
hello little, i have been a fan of your computers for a logn time, good to see you uploading one again although its just a copy.
Hey little, thanks for your scene that explain how to thyme!
Thanks!
Oh and also, I want to know how to write to bios (or the thing in cpu's code that makes the pc bootable) trough floppy disks because I want to make floppy's that fries the pc. Do you know how?

Again, Thanks.
Last edited at 2025/06/03 17:59:52 by honzuliina
Doing so would require a script to have access to the CPU.
This could be done by looping over all objects in the scene -- but that would be incredibly inefficient.

In the AHOX Boron and PocketPC mk6, I plan on adding features to both Chives and Ab that allows the CPU to share its EntityID with programs, making it easier for the glitch to target the CPU. :lol:
@honzuliina -- You said: " I want to make floppy's that fries the pc."

WHY do you want to do that? Do you enjoy destroying things? :unsure:
I think the better question is why not! :lol:
Good question! :lol:


Well, TBH, I wasn't sure if destroying a PC in an Algodoo scene would also corrupt Algodoo, causing possible erratic operation of the device it runs on. That was my concern.

Your thoughts?
Last edited at 2025/06/04 23:42:10 by Xray
I don't see why it would! :lol:

A very script to fry the computer, on a system that supported accessing the CPU's entityID, would look something like this:

import 0 entityid
set 1 ;cpu=scene.entityByID( vr0 );cpu.postStep=(e)=>{};0
print Your CPU has been fried!
netread 0 vr1

(tested and confirmed working on the AHOX Boron Prototype)

As you can see, this script works in a way that's similar to the script shown in the scene.
Instead of showing a "Hello, World!" box, however, it deletes the computer's BIOS.


The computer will run this program and simply give an error due to running out of code like usual -- but once you turn off the power, you will notice that.. nothing happens!

You can try restarting it as many times as you like, but the truth of the matter is, it's broken! :lol:

This script gives a similar effect, but it deletes the CPU rather than simply frying it:

import 0 entityid
set 1 ;cpu=scene.entityByID( vr0 );scene.removeEntity(cpu);0
netread 0 vr1

As a result, the GPU loses signal shortly after and the computer simply enters an infinite "No Signal" screen, which might still be kind of fun! :lol:

Now, in both scripts, you may have noticed the ";0" at the end of variable 1.

This is so that we don't return the CPU to memory for the singular frame it's still active and create an infinite loop of CPUception, crashing Algodoo.

I would definitely like to make this into an AlgoMEMZ 2.0 when the Boron and PocketPC 6 release -- I think it would be kind of funny! :lol:
Last edited at 2025/06/05 20:21:37 by Little
Wow, I thought I was the most verbose person on Algobox. I just met my match! :lol:

Seriously, what you said makes sense. Thanks!
I used the above context in my latest scene, the AHOX PocketPC 6, in the form of AlgoMEMZ 2.0!

Now instead of immediately deleting the CPU, it gradually strips functionality before replacing the BIOS with a useless nyan cat screen. :lol:
I like the nyan cat. He/She is a real cutie, but there's no way that I would watch and listen to a nyan cat video on YouTube for TEN HOURS! :o :lol:
I actually watched the entire video once.

It was pain :(
OMG! Really? :lol: :lol:
Yeah... :(

This was when I was like 7 though. If I were to do it again, I would probably listen to it in the background while drawing or something! :lol: