a child's first computer

I have some experience teaching computers, including with the OLPC X0. I have lots of thoughts on why that project failed, but more important is to apply some lessons learned. More fundamentally I'm not trying to solve this for every child on the planet, I want to focus on working closely on just one particular child. I want her hands on a real keyboard, because I believe tablets are for consumers, keyboards are for creators. I want the machine to be something she genuinely enjoys using. I want the machine to be finely tuned to her particular needs and stage of development.

Click to see it in action

While the work isn't done, and probably won't be for many years, I have had enough progress and success to want to show this to others. Everything is open, and I'm confident that others with linux experience can replicate this, and help to make it easier for a wider audience to also use the project.


Hana was 18months old when she started using this. I'm sure it's applicable for children considerably older, but I doubt before that age it's relevant, and perhaps even inadvisable.


The code is from the original OLPC project with some customizations. Using the arrow keys moves a marker through a maze. A colored trail shows where you've already been. Mazes can be incredibly simple, but a simple keypress (+ or -) will gradually increase complexity to a level that most adults will find terrifyingly complex.

Icons across the top allow the choice of which directory of videos to play. When the maze is solved, one randomly chosen file from that directory will be shown.


After a few weeks of exposure, Hana seemed to appreciate that she had her own machine, much like what she saw mom and dad using. She moved on to


Original code. The child is shown a word and a picture. Optionally, text to speech says the word. The child tries to type the word. Color coded (Green vs Red) shows characters that are correct or incorrect. After 3 correctly spelled words, a video is randomly chosen and shown.



The child is shown a word. ~4 pictures are shown, and the child must click on the correct picture. Correct clicks add +1, incorrect clicks -1. After a chosen threshold score a video is randomly chosen and shown.



As of 2019 HanaPhonics is the primary activity for her to intract with. This came about in several ways. Firstly she gradually mastered the simple mazes until I had to raise the difficulty to where I could also not readily solve them, and at the same time she lost interest. Secondarily I eventually added full movies to the machine, and currently her absolute favorite -- Frozen -- is only available under HanaPhonics.

Answer questions, watch Frozen

Compare the randomized video list order

  • yaml config file
    /etc/hana.yaml Makes it easy to configure the actvity. Configurables include which video files or directories, what text ("snowwhite", "snow white", or "Snow White"), number of stars required, number of picture choices, wordlist and pictures.
  • video choice pulldown
    Randomly ordered with no icons, forcing her to actually read the text instead of memorizing positions
  • files or directories
    list a single file, get that. list a directory, get a randomly chosen file below that point
  • enforce time limits
    determine the length of the chosen video and only allow VLC to be open for that long, to avoid backing up and replaying many time. Still allows her to use the full duration to watch just the "Let it go" song many times, if desired
  • Content

    The choice of what videos will be available is up to you, no video content is included. What materials your child is interested in should be the main driver. The videos themselves should be the reward, so it should be something they actually want to watch. Naturally you'll only want to use materials for which you have a legitimate copyright, perhaps ripped from your own home library. youtube-dl makes it easy to archive anything from youtube. Various collections are also available on piratebay, for which you may have the rights.

    VLC is used as the video player.



    This is where I need your help. The current installation is very purpose built, and was done on hardware almost certainly different from what you'll use. In our specific case, I used

    1. gparted to preserve the previous MacOS installation, but repurpose free space into a new partition.
    2. fedora26 as a base linux install, however that was done via
    3. this provides a GUI which is much more kid friendly than any other OS
    4. removed a bunch of the default apps from below /usr/share/sugar/activities/
    5. store videos below some directory tree of your choice, currently /home/olpc/videos is used in the code
    6. I'm sure there are quite a few gotchas with the install, but will be happy to assist
    7. History

      The earliest version was me hacking on an olpc x0 and making it play videos when Hana clicked an icon that looked like her. That led to customizing the Maze, as a precondition of playing videos. Eventually that worked well enough, but the olpc hardware couldn't keep up with the video demands, nor the growing disk space needs. I repurposed Nicole's old laptop (2010 Macbook Pro 7,1). It now runs fedora 26 and sugar. Due to the broadcom chipset in that machine, wifi works, although currently not on boot. I do have a script that I run which fixes it, but I've not automated it into the boot sequence, since there is some appeal in knowing the box won't be on the internet until I take active steps. At the moment customizations are focused on additions to the Typing program.


      I'm aware of this as the spiritual ancestor to what I'm doing, but I'll confess that I've not actually read the materials.
      Great concept, but terrible execution, crushed under the weight of it's own ambition. So many successes, hobbled by a few failures, with the mouse pad driver's drift as a notable one. Hey mary lou jepsen, I still want to be able to buy this screen for daylight work on my own laptop!
      Khan Academy
      Such wonderful material, with the math being particularly worthy of praise. Focused, incremental self-paced progress from the number line to calculus with so much in between. But last I looked the entry point still required being able to read, and I need a device that helps to get a child to that level.
      KAlite & Kolibri
      Khan Academy's offline forks which I've used in the past while teaching. kidslaptop doesn't require an internet connection, but it can use one. I use this to allow me to do dev & code editing via ssh, to git push&pull, and occasionally to run firefox on the machine so that she can directly watch a special youtube video on an ad hoc basis.