Complex subjects,
clearly taught.
We teach complex technical subjects through tailored courses and practical examples. Code, infographics, animations and interactive explanations help people see how an idea works, then put it into practice.
Explore our writing tooPreparing the terrain and rover…
Courses shaped around your team.
We’ve delivered functional programming training in Scala and Cats. We can prepare a course around your team’s experience, what they need to learn and where they’ll use it.
The examples below show how we make abstract ideas tangible. Change a parameter, watch the result and build an understanding of the rules behind it.
Learn with us, for free.
Building Agentic AI Systems
Free course materials · About one hour · Python
A hands-on introduction originally written for bioinformaticians. Build an agent that extracts structured information from research abstracts, then explore tools, context and multi-agent workflows.
The materials are free to use. Running the examples requires an OpenRouter API key; model usage may incur charges.
Ideas, made visible.
Learn by exploring: change a rule, follow a calculation and see what happens. Each example explains a concept behind our work.
Turn to an idea
Across the red planet.
Follow a rover across a landscape generated by code. Hills, ground contact and rolling wheels turn mathematical rules into a journey.
Start with a sine wave.
A broad wave raises and lowers the ground. Its amplitude sets the height of the hills; its frequency sets how closely they repeat.
Change a wave to reshape the valley. Zero removes it.
Seed 1502. Step ahead or press Play: waves, graph and rover share this landscape and journey time.
Changing phase φ(t) moves each wave through time. They settle before we add their heights.
Time 0.0 s · Seed 1502 · Yellow slice: x = 0.0, z = -16.0 to 16.0. Placed rock models are not shown.
Preparing the terrain and rover…
How the landscape and movement work
One landscape, three views. The combined waves, 3D graph and rover share the selected seed, wave strengths and journey time. The graph samples the same height formula as the renderer, including seeded shoulders and rocky ground detail; separately placed rock models are not drawn in the graph. The yellow curve is a slice through the rover’s current x coordinate, covering 16 units behind and ahead in z.
Time and motion. Use Journey time or the five-second steps to inspect future terrain. Play advances time while keeping your selected graph visible. See the landscape starts the rover from that exact point. The ground stays fixed in world coordinates: these graphs move along the route, rather than changing the terrain underneath the rover. Replay returns to the beginning of the explanation and journey.
Procedural terrain. The seed controls hills and rocky detail around the winding valley. The wave sliders reshape the valley floor and update the rendered ground and wheel-contact calculations together. Generating another landscape resets the journey while keeping your wave strengths.
Ground contact. Six ground samples determine the rover’s height, body tilt and suspension offsets. Each wheel turns by its travelled distance divided by its radius. The shader and rover use the same route-height function.
Camera. Drag the landscape to orbit and tilt. After clicking the scene, use the mouse wheel to zoom. Auto camera restores the moving view. Keyboard users can use the arrow keys, plus and minus, and Home. Camera changes work while playback is paused.
Rendering. The terrain is generated in a shader; the rover and nearby rocks are locally packaged 3D models. Tracks, dust and a moving camera complete the scene. This is a Mars-inspired illustration, not measured Martian terrain or a full vehicle-physics simulation.
Seed 1502. Playback pauses offscreen and when this tab is hidden. Reduced-motion preferences show a still view; Play starts motion explicitly. Model credits.
Learning in the community.

We also support Julian’s Pathfinder, a Maltese foundation that helps gifted children and young people explore their interests through learning outside the classroom.
Their Computer Science Club gives students space to explore algorithms, work through problems together and test their ideas in code. Its longer-term goal is to prepare students for the International Olympiad in Informatics.
What does your team need to learn?
Tell us about the subject and the people learning it. We can prepare a tailored course, an infographic or an interactive explanation that helps it make sense.
Plan a learning programme

