Projects

ZofIA

ZofIA logo

A specialized educational platform geared towards assisting students in their preparation for the admission exam at the most prestigious university in Mexico. Gained over 10k Instagram followers in approximately three weeks after launch.

We have an automated pipeline that produces videos containing text, images and audio where we present a question and its solution. This content is generated with the help of Large Language Models (LLMs), text-to-image models and text-to-speech models. We then integrate these elements using Python to create the final video, that is later posted to our social media accounts.

The backend for the platform is written in Rust, the frontend in React and TypeScript, the database is PostgreSQL and the server is hosted on Heroku.

You can try the platform here: ZofIA

Chip 8

A very simple implementation of CHIP-8, written in Rust and compiled to WebAssembly; it uses a simple canvas to render the graphics.

Demo:

In the game wipeoff you can move the paddle with the keys q and e.

Trueno

A multithreaded and SIMD enhanced CPU ray tracer.

Supports diffuse, metal and dielectric materials, antialiasing, a fully configurable camera (resolution, aperture, focus) and scene.

Trueno demo

Implementation based in the book Ray Tracing in One Weekend

FIRE

A modal FIle Reader and Editor (FIRE) written completely in C, without using external dependencies.

Fire Demo

This was written in an attempt to dust off my C knowledge and also to try to learn modern common practices, like the usage of standard types (stdint.h), or to avoid using malloc in favor of using calloc. My main guide in this process was the blog post How to C in 2016 by Matt Stancliff, by now is a bit outdated, but still is a good read to catch up with somewhat "modern practices".

I am a big neovim fan and this was my main inspiration while building FIRE, as you can see from the demo above.

Features

  • Normal and Insert mode, as in Vim.
  • Open, display, edit and save files.
  • Incrementally search file contents.

The source code and instructions to run the project are available in the repo.


Interpreter

Mountain

The implementation of a dynamic programming language, Lux, and also his interpreter. It supports variables, flow control and functions. It has a REPL and it was made with a particular focus on the quality of error messages.

Implementation based in the book Crafting Interpreters de Robert Nystrom.

You can try the REPL (compiled to WebAssembly) here:


Covid Dogs

Perritos

Work in progress... In the mean time you can read the auto-translated version here.


Reporstat

Julia

Documentation

Work in progress... In the mean time you can read the auto-translated version here.