HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
antirez
load81
C2012–2026
antirez / load81

load81

SDL based Lua programming environment for kids similar to Codea

23Distinct people
55Mentions
2Explicit recommenders
743GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

SDL based Lua programming environment for kids similar to Codea

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I love Redis and what its done for the world but my favourite antirez project is LOAD81, which I think is just a few core modules away from being an amazing new platform for…

boffinAudio used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year55 dated mentions

Observed mentions: 2012-03-05 21:20:13 UTC to 2026-06-15 21:41:24 UTC.

024682012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC817
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC312
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC505
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC303
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC505
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC606
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC505
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC606
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC211
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC303

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
README Load81 is an attempt at creating a Codea-inspired environment to teach children how to write Lua programs. It features a graphical programming environment and a Commodore-64 style integrated editor so that the programmer is confined into a friendly environment with a simple editor: The following is a screenshot of the running program (examples/asteroids.lua). The programmer can currently switch between edit and play mode pressing the ESC key. Load81 is written in ANSI C and uses SDL and SDL_gfx and SDL_image, so should compile on Mac OS X and Linux without issues. It should not be hard to port it to Windows. The coordinate system and the basic drawing functions are compatible with Codea (check http://twolivesleft.com/Codea/ for more information), but there is no support for stroke. There is no aim at Codea compatibility, but who is familiar with Codea should feel at home with Load81 in terms of API and structure of the program. I wrote it mainly because I and my children have fun with Codea but we don't have an iPad at home, and using a real keyboard sometimes can be less frustrating. The name Load81 originates from the fact that in popular Commodore home computers the command LOAD "*",8,1 would load the first program on the disk starting from the file-specified memory location. USAGE Start Load81 with: ./load81 example.lua To switch between program and editor mode press the ESC key. Check the "examples" folder for small examples. PROGRAMMING INTERFACE Drawing functions: fill(r,g,b,alpha): select the drawing color. background(r,g,b): paint the whole background with the specified color. rect(x,y,width,height): draw a rectangle at x,y (left-bottom corner). ellipse(x,y,width,height): draw an ellipse centered at x,y. line(x1,y1,x2,y2): draw a line from x1,y1 to x2,y2. text(x,y,string): print the specified text at x,y using a bitmap font. triangle(x1,y1,x2,y2,x3,y3): draw a triangle with the specified vertex. getpixel(x,y): return the red,gree,blue value of the specified pixel. sprite(file,x,y,[rotation],[antialiasing]): draw sprite at coordinates with the specified rotation (in degrees, default 0) and antialiasing (default false). Control functions: setFPS(fps): Set the frame rate. For default it's set to 30 frames per second. KEYBOARD EVENTS To check if a key 'a' is pressed use: if keyboard.pressed['a'] then ... SDL Key symbol names are used. You can easily find how a given key is called using the following Lua program: function draw() for k,v in pairs(keyboard.pressed) do print(k) end end (You can find this program under the examples folder). LOW LEVEL KEYBOARD EVENTS It is also possible to trap low level SDL events accessing keyboard.state and keyboard.key fields of the keyboard table. keyboard.state is one of: "down" -> KEYDOWN event "up" -> KEYUP event "none" -> No event keyboard.key is set to the key pressed or released when state is different than "none". MOUSE EVENTS mouse.x and mouse.y gives you the current mouse coordinates. To check if a button is pressed use: if mouse.pressed['1'] then ... Mouse buttons are called '1', '2', '3', ... and so forth. LICENSE Load81 was written by Salvatore Sanfilippo and is released under the BSD two-clause license, see the COPYING file for more information. The load81 project is dedicated to Jack Tramiel, founder of Commodore.
Read the full README on GitHub

What Hacker News says

55 sources
I do the “Linux from Scratch” challenge every few years and the last time I did it, I got as far as I needed to be able to build antirez’ LOAD81[1] directly from single mode in a few seconds.. it was so satisfying. I lost the image in some later admin task, but I’m going to do it again, and maybe see about adding threads and SQLite support to LOAD81 alongside the other goodies, just for the fun of it .. [1]- https://github.com/antirez/load81
In Boot Naked Linux
I have found that antirez’ LOAD81 can be a rejuvenating and invigorating environment to give to kids and the elderly, alike, to inspire them to rekindle their love of programming: https://github.com/antirez/LOAD81 It has all the bells and whistles of a BASIC environment - easy, simple editing, fast switching between code and runtime, and just enough of an onboard SDK to do hires graphics and so on .. but with the Lua language, instead of BASIC. Maybe your little brother will get a kick out of this .. keep an eye for some of the forks of it too, which provide other functionality such as joystick and sound support .. sooner or later, someone will bolt on networking and maybe even REDIS support, and we’ll have a whole new era of simple Lua-based client programming on our doorstep.
In 101 BASIC Computer Games
This is so beautiful I could almost weep. With this, we can proceed - easily! - to attain something I have long wanted: to replace all Linux userspace with Lua-only tooling. Yes, Lua all the things in userspace. I know, "why would I do that?", well, because there is a thing I've wanted for 40 years of computing, and that is a very, very powerful computer that only requires me to use one (oh, okay, two or three..) languages. I grew up in computers that booted directly to a single language (BASIC), and would let you do everything you need in that and only that. Imagine replacing all userspace tooling with a lua implementation. Yes, insane! But imagine the development flow once you get some good stuff ported/ffi'ed! Having the kernel interfaces available now, is just .. candy. I would love to have this for a Linux distro, even experimen
Read the rest
tal, even just as a toy, to boot directly into a LOAD81[1] interface that has a whole lotta new Lunatik in it .. I could imagine pushing LOAD81 very hard into a new OS paradigm with this. Wow! [1] = antirez' LOAD81, which I have long thought of as a fun way to build a new userspace front-end: https://github.com/antirez/LOAD81.git
In Lunatik: Lunatik is a framework for scripting the Linux kernel with Lua
I think it once was taught, but was considered passé in various places during the "Java" revolution, and in general I think there is a degradation of capabilities in most comp-sci programs, a consequence of interference by market players who invest in the schools in order to keep their technologies relevant. If anyone reading this wants to see what the fuss is, you can get started very easily with antirez' (Redis fame) simple toy project, LOAD81 - which is a great example of just how powerful things can get when you bring Lua into your life. (http://github.com/antirez/load81.git) - note that this is a great project to learn this technique, but if you do anything interesting in the load81 context - please push it back to LOAD81. :)
In Using Lua with C++

Showing the 15 most recent of 55 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.