Daniel Torres

Published Software

I publish some of the software I produce. I do it when I think some other people can benefit from it, even if "other people" means "myself from someone else's computer".

As always, unless I get a ridiculously large amount of free time, I will only gather the software published since the creation of this list.

Publication dates may be approximated.

GBA Tetris

An offline-first, progressive web application with the game of tetris.

Motivation

Long time ago, by coincidence I re-visit this old codepen I did when humanity coexisted with dinosaurs. It actually worked, and it was fun! Of course, it is only a prototype, as it was intended.

I remember doing that in a full afternoon. Then, a question popped into my head: In my current situation, am I still able to overcome the prototype barrier and create real products? If so, how much time will it take me? (for comparison, prototype's afternoon).

Well, then I did it. I went beyond the prototype and did the working production-ready game. And more importantly: I answered my questions.

About

As said, it is a progressive web app. Therefore, you can install and use as an standalone application, using your browser as the engine. This allows you to reuse a really thick layer of software in your device.

In turn, either as standalone or web application, it is designed to be offline-first. In particular, you need internet to reach the web the first time, and all needed resources will be cached. After then, you can play completely offline. If you're online, resources will be downloaded only if there is an update.

This application is a personal reinterpretation of the tetris game I used to play in my game boy pocket during my childhood. Controls, scoring and other details should be as similar to the original as my memory, documentation and ability allow me.

In addition to the game itself, there is a public leader board that the application updates when it has internet access. Only 100 top scores are shown.

I thoroughly enjoyed designing and doing every aspect of the game. From engine ABI's design, to drawing the sprites, handling user input, or user interface, to mention a few. Nevertheless, despite how much I was enjoying, I stopped this madness before I got into the sound management.

Finally, I just want to say that I could write way more about how it was made, what I learned from it, and others. However, I'm finishing here. If you are interested, just ask me about it.

Skew B Ultimate

A post about that Rubik's cube.

I just had a draft with the ideas about the resolution of this cube and the other ideas presented in the post. I also had the ThreeJS render with the cube. Both since long, long ago.

It took me a while, but I finally wrote all together. I did it quickly and messy, but its done.

Double pendulum visualization

With time-dependent masses.

At the time of starting the project, in relation with this article, I needed to smoke test the equations for the double pendulum with time-dependent masses. And quickest way I know for that is simulate and look.

At the same time, I knew that simulation would not be the last one I would need to do, and probably I would want to publish some of the future simulations.

This, together with enthusiasm for C and my (back then) recent interest for WebAssembly. push me to test the practicalities of one of my software philosophies: compute close to the metal, visualize close to the user.

As a result, I created (for the first time) an application using web interface to control a logical core in C.

Up