Periodic

Based on the (now-defunct) Sifteo Cube platform, Periodic is an interactive toy for teaching K12 students about chemistry. Sifteo Cubes were an edutainment platform that consisted of a base station and 1-12 separate “cubes”. They’re best explained by watching this short video of them being used, but in short: Each cube consisted of a 1.5" touchscreen and could sense whether and where it was touching any other cubes (and which side they were touching on.)

We utilized Sifteo Cubes to develop a physical toy which allowed students to interact with individual chemical elements to see how they bonded with eachother in a way simply not possible in the real world.

At the core of the app lies the reaction possibility engine, a robust and extensible pattern recognition system used to recognize what compounds the student has assembled and describe how their discrete elements interact. One unfortunate downside of the Sifteo Cubes is their limited computational capabilities. Applications like Periodic only have access to a mere 32 KB of RAM, there’s no standard C library, and by extension no dynamic heap allocation. This means Periodic accomplishes all of this using statically-allocated memory and by implementing “standard” functions its self as needed. Just like the good ol’ days 😁

In order to test the various complexities of Periodic, we implemented our own unit testing framework which runs tests on the Sifteo platform directly to ensure everything works as expected on real hardware (or at least in the emulator.)

As mentioned earlier, the Sifteo Cube platform is no longer being manufactured and the company no longer exists. Towards the end of the project, I created a proof-of-concept standalone app which runs Periodic’s code as a WinForms-powered Windows app. This standalone version is a little rough around the edges (the Sifteo interaction model doesn’t make a ton of sense with a traditional PC form-factor), but it was validating to see Periodic running in an environment it wasn’t designed for with only a few stubs for the bits that interacted with the Sifteo operating system.

Technologies used:

Download

Screenshots

Unfortunately I don’t have any photos/videos of Periodic running on actual Sifteo Cube hardware, so these are from the simulator and standalone app.

Simulator showing acetylene and disulfur dioxide

Simulator showing acetylene and disulfur dioxide

Proof-of-concept standalone app

Proof-of-concept standalone app

Phosphorus acid

Phosphorus acid

Perchloric acid

Perchloric acid