Who wins the APL Forge?
APL Forge winners have included students, undergraduates, and professional researchers. Submissions have ranged from a machine learning library to a voxel game to an online REPL for array languages. The winning entries were not finished, production-ready products. They were interesting ideas that worked. If you’re wondering whether you’re the right kind of person to enter, read on.
Kyle Croarkin
Winner APL Category 2026
Kyle had been writing APL for only a few months when he started his winning project: a Minecraft-style voxel game written in APL.
He will present his work at Dyalog ’26.
In his own words
“I recently graduated from the University of Illinois Urbana-Champaign with a degree in Computer Science and Linguistics, and am now a Graduate Research Assistant at Mayo Clinic while I decide on my plans for graduate school. My current research encompasses data science, machine learning, and natural language processing, and I also have a passion for graphics programming and game development that was inspired by wanting to modify Minecraft and other games at a young age.
“This project has been a lot of fun and I intend to continue to develop it alongside potentially attempting to create a commercial game in APL if the time permits.”
“I discovered APL in August 2025. I was quickly fascinated by it and wondered how it could be used to make wider applications. My initial investigations included looking at Brian Ellingsgaard’s Dyalog ’24 presentation on raylib-apl (a simple cross-platform library for graphics, sound, interactivity, and more) as well as seeing how concisely he had implemented Tetris using APL. I decided that a voxel game like Minecraft, a game where the world is composed of blocks that you can break or destroy and move around in, would be the perfect fit for APL’s notation in a low level graphics library.
“After a few months of studying APL, I felt confident to start this project. Although there was a lot of work, experimentation and studying the documentation to get what I wanted, I was amazed that things that would have taken me dozens of lines in C++ or Rust could be concisely done in a few lines of APL. Things like collision detection, frustum culling (performance optimisation in 3D graphics), and converting blocks to geometrical representation could be done significantly more concisely whilst maintaining good performance. More surprisingly was how well I was able to reason and work on my APL code, constantly iterating it and modifying it to improve it. It was amusing that something that started out as an experiment quickly made me appreciate and even prefer the language!”
Conor (Hoekstra) Shakory
Winner non-APL Category 2026
Conor’s winning entry, ArrayBox.dev, is a good example of the non-APL category: an open-source online REPL for six array languages that makes APL easier to use without being written primarily in APL.
In his own words
“I am currently a research scientist at NVIDIA, as well as being a YouTuber and podcaster. I have four podcasts, including ArrayCast, which is a podcast about array languages (APL, J, BQN and others), and my YouTube channel often covers content on array languages as well. My biography/linktree, with links to all of my podcasts, videos and other content, can be found here: conorshakory.com.
“What I wanted was a one-stop shop where I could switch between APL, BQN, J, TinyAPL, Kap, and Uiua.”
“I discovered and fell in love with APL in December 2019. Before then, I had heard of APL a number of times. The first was in 2010, when I was studying Actuarial Science at Simon Fraser University and it was mentioned in an actuarial course called ACMA 320. If you want more details on the period from 2010 to 2019, when APL came up several more times, I talk about it for approximately seven minutes at the 8:50 mark of my Twin Algorithms talk that I gave in 2022. In 2019, I finally started exploring the language properly using tryapl.org, and instantly fell in love.
“ArrayBox.dev has been a website I have been thinking about since I discovered the array languages. There are many online REPLs for array languages, and all of them have their faults. What I wanted was a one-stop shop where I could switch between APL, BQN, J, TinyAPL, Kap and Uiua. I wanted inline documentation, keyboard mappings, primitive search, syntax highlighting, code formatting, inline train trees, and more, all in the same place. This is what ArrayBox.dev is. You can get a feel for the site by watching this introduction video, and it is completely open source (MIT License), so if there is a feature that you want to add, you can contribute at github.com/codereport/array-box.”
Borna Ahmadzadeh
APL Forge 2025 Winner
Borna’s winning submission, APLearn, is a machine learning library written in APL, covering models from linear regression to random forests. He will present his work at Dyalog ’26.
In his own words
“I’m a computer science student in Toronto, Canada working towards my bachelor’s degree at York University. Although my experience primarily lies in machine and deep learning, I’m also very curious about theoretical computer science and language design, leading me to explore different programming paradigms, including array programming – more specifically, APL – just over a year ago. APL held a double interest for me: It was very different from the object-oriented and functional languages I was used to, and it demanded a completely new perspective on programming (data-parallel operations, no branches, and so on). At the same time, it struck me as a more elegant tool for conveying concepts and ideas that scientific computing frameworks in languages like Python could only awkwardly express. I was particularly keen on this point because machine learning tasks regularly deal with complex multi-dimensional arrays, and APL seemed like an appealing alternative to the currently Python-dominated landscape.
“I believe APL is a viable tool for quickly and succinctly solving many computational problems, especially in research.”
“My first experiment in this area was trap, an implementation of transformers (e.g., GPT) in APL. I was surprised by how concise the code was compared to the Python reference, even though the latter wasn’t written from scratch, instead utilising the deep learning package PyTorch. To take trap a step further, I started to implement more traditional machine learning models such as linear regression and support vector machines in APL, forming the basis of APLearn. Transformers are conceptually straightforward since they are, in terms of concrete implementation, little more than a sequence of matrix multiplications. On the other hand, machine learning algorithms are often trickier, relying on more than just basic linear algebra. For example, random forests depend heavily on trees, and Lasso regression is solved using an iterative, non-parallel approach called co-ordinate descent. This created difficulties at times because it wasn’t always obvious how to translate, say, ifs or for loops into APL, and I had to actively force myself to avoid falling back on a more standard, imperative mindset. During this time, I maintained a correspondence with Aaron Hsu, the developer behind the Co-dfns APL compiler, concerning performance improvements, and he encouraged me to submit my projects to APL Forge.
“In the future, I plan to study array programming in greater depth, with a focus on machine/deep learning. I believe APL is a viable tool for quickly and succinctly solving many computational problems, especially in research, and I hope I’ll have the opportunity to take advantage of the many benefits it offers in my work.”
Holden Hoover
APL Forge 2024 Winner
Holden won the first APL Forge while still at high school, with Radar Ingest System, a tool for processing live aircraft data. He presented his work at Dyalog ’24.
In his own words
“I am a high school student in Nova Scotia, Canada, and am about to start my final year. My journey with APL began at the age of 12, thanks to an introduction by family friend Robert Bernecky. Since then, APL has been an important tool in my learning journey. It has allowed me to quickly develop concise solutions for many of my classes, especially in Physics and Mathematics. Looking ahead, I plan to pursue a university degree in computer science, where I intend to continue using APL for research and application development. I am particularly interested in exploring the intersection of APL with machine learning.
“I had been wanting to do this project for a very long time, having tried to do it in JavaScript with no luck.”
“I decided to enter the APL Forge when I heard Stine Kromberg talking about it on the ArrayCast podcast. I was encouraged by friends to enter, mostly to gain valuable experience and have a motivation, rather than the competition itself.
“I submitted an application called Radar Ingest System. This system is designed to ingest, process, and aggregate raw ADS-B data from multiple antennas. ADS-B (Automatic Dependent Surveillance-Broadcast) is a radio protocol that allows aircraft to communicate essential data – such as callsign, position, speed, and altitude – with ground stations. My application processes this raw data to create a database of airborne aircraft. This database could then be utilized by other applications, including REST APIs and GUIs, to visualize and display the data effectively. I had been wanting to do this project for a very long time, having tried to do it in JavaScript with no luck; when I was trying to do it that way, I spent more time trying to figure out libraries and minor bugs than programming the actual program! While doing this project, I learned a lot about how to use Conga and Jarvis, but I also improved my fluency in the language.”