ESA WorldCover is a categorical dataset with 11 classes of land cover (such as water, trees, built-up etc.) at a 10-meter resolution covering most of the world. In this short post I show how to extract a specific region given its geographic coordinates.
The inspiration for this project came from two main sources. The first is Zork, a text adventure released back in 1977. The original version ran on the PDP-10 mainframe and was coded in MDL, a Lisp derivative. When the time came for a microcomputer version, however, MDL was just too big to fit. The game was reimplemented in a custom language called ZIL – Zork Implementation Language . Incredibly,…
Today I am releasing my raycasting tech demo for the GameBoy Advance. Although it falls short of the goals I set out in the beginning – which included releasing a playable game –, I think there are some lessons worth sharing with the world.
The GBA is a delightful platform to develop for. It is straightforward enough to understand thoroughly – a single 32-bit CPU, no OS, no built-in wireless features – but also sufficiently advanced to allow an ergonomic workflow based on modern languages and tools like C++20 and CMake (or Rust). Still, it is not particularly powerful in terms of raw computation and when writing rendering code, even…
Every now and then I feel a need to programatically generate and execute a Makefile: for example, to execute a graph-based procedural generation workflow, or to compile some game assets that are discovered dynamically by a tool – in general, all these problems can be represented as directed acyclic graphs of files and tasks.
At its heart, the Xilinx UltraScale+ SOC has a multi-core Cortex-A53 CPU. This is not the fastest ARM out there, but it’s still plenty capable. One interesting feature is its built-in Snoop Control Unit (SCU). This enables transparent synchronization of L1 caches among the individual cores. There is one pitfall that you might fall into when running bare-metal code: the distinction between secure…