KIDBOOK Animals

KIDBOOK Animals

KIDBOOK Animals was made for toddlers: a seemingly endless mosaic of animal photographs and sounds that could be explored simply by scrolling in any direction. The interface was intentionally obvious. Making it feel that way was not.

KIDBOOK Animals app artwork with the lion icon and KIDBOOK animals wordmark

Designed for people who should not notice the technology

The idea was deliberately simple. Children could move across a large field of animal images in any direction, discovering photographs and hearing the corresponding sounds. Many of the photographs came from our own trips and everyday adventures, which gave the collection a personal rather than catalogue-like character.

That simplicity mattered because the audience was about as far from a technical user as it is possible to get. A toddler should not have to understand loading, pages, menus or waiting states. The content simply had to be there when the child moved towards it.

Smooth scrolling on very small hardware

The difficulty was memory. On the mobile hardware of the time, only a small number of full-resolution images could live on the GPU at once. Yet the mosaic had to appear continuous, with new images arriving quickly enough that scrolling never exposed the machinery underneath.

The solution was a custom cooperative multitasking system. Image loading and decompression were split into small units of work and scheduled into the time available between 30 fps screen refreshes. Rendering kept priority; background work progressed whenever the frame budget allowed it.

That, in turn, required an incremental JPEG decoder that could pause part-way through decoding an image, return control to the animation loop, and then continue where it had left off. Instead of treating image decompression as one blocking operation, it became part of the application’s own scheduler.

The least technical audience produced one of the more technical implementations: the better the system worked, the less there was for the child to notice.

Cross-platform, again

Like Stars before it, KIDBOOK Animals was built on the Marmalade SDK in C++ and targeted several mobile ecosystems from the same codebase: iOS, Android, Amazon Kindle devices and Samsung bada.

That made the project another exercise in designing for the constraints of real devices rather than a single reference platform. Memory limits, graphics behaviour and performance characteristics varied enough that testing on hardware remained essential.

A series that stopped at volume one

KIDBOOK Animals was intended as the first of a small series. Other ideas included construction-site machines and transportation — cars, buses, trains and similar subjects that young children tend to explore with the same enthusiasm as animals.

In 2016 Marmalade announced that development of the Marmalade SDK would end as the company shifted its focus towards its own game studio. At that point, continuing the series would also have meant taking on the long-term burden of replacing or maintaining the cross-platform foundation underneath it. We decided to stop after the first book.

The app remained available for its supported generation of devices and was later removed from the stores as those devices and operating-system versions fell out of support.

What remained

KIDBOOK Animals was a useful reminder that technical sophistication is often most valuable when it serves an interface that feels completely ordinary. The project deepened our understanding of constrained graphics memory, scheduling, incremental decoding and the practical trade-offs involved in keeping animation smooth on modest hardware.

It also reinforced a theme that had already appeared in Stars: a natural interaction rarely means less engineering. Quite often it means doing more work underneath so the person using the software has less to think about.