Skip to content
Work

Three demos, running live.

We don't have client case studies we can publish yet, and we won't make them up. What we can show you is working software: one demo for each service, running in your browser right now.

01Digital Product Engineering

The Particle Core

  • WebGL
  • Three.js
  • GLSL
  • React Three Fiber

The problem

Rich interactive graphics usually come with a performance cost: a beautiful hero section that drops a mid-range phone to fifteen frames a second.

What you're looking at

The same particle system that runs behind this site's homepage, with its internals exposed. Change the particle count and the morph stage and watch the frame counter respond.

How it works

Up to 30,000 particles are drawn in a single draw call. Five target shapes are uploaded once as GPU attributes, and morphing happens entirely in the vertex shader from one scroll-driven value, so the CPU never recalculates a position. Particle budget and pixel ratio are chosen per device, and the whole thing is replaced by a static frame when a visitor prefers reduced motion.

The Particle Core
Live
measuring…4,000 particles1 draw call
Particle

A single idea, concentrated.

Controls

PartProdInteGrow

On the homepage this value is driven by scroll position. Here you control the same value by hand.

Particle budget

Your device was profiled as low tier and would get 4,000 on the homepage. 60,000 is more than the site would ever use. It's here so you can find the point where your hardware gives up.

02AI & Intelligent Automation

Automation Flow

  • Workflow design
  • LLM classification
  • Confidence thresholds
  • Human-in-the-loop

The problem

An enquiry arrives, someone reads it, someone copies it into a CRM, someone decides who should answer, someone remembers to follow up. Every step is a place to lose it.

What you're looking at

A working visualisation of an automated intake pipeline. Send a request through it and watch it get classified, enriched, routed and logged, including the branch where the model isn't sure and asks a person.

How it works

Most useful automation looks like this: a series of small, predictable steps, with a model only where judgement is really needed and a clear path for when it isn't sure. The interesting engineering is in the branch that admits it doesn't know.

Automation Flow
Live

Send an enquiry

Pick an input, set how certain the classifier must be before it acts alone, then run the pipeline.

Sample enquiry

Below this, the pipeline stops guessing and asks a human.

Scripted sample data: each enquiry's classification is fixed, so the same input and threshold always take the same path.

  1. 1

    Intake

    Enquiry received and normalised

  2. 2

    Enrich

    Domain and prior contact looked up

  3. 3

    Classify

    Intent and service pillar inferred

  4. 4

    Decide

    Confidence checked against threshold

  5. 5

    Route

    Assigned to a person or a queue

  6. 6

    Log

    Written to the system of record

Ready. Pick an enquiry and run the pipeline.

03Digital Growth

Live Performance

  • PerformanceObserver
  • Core Web Vitals
  • Navigation Timing
  • RUM

The problem

Site speed affects growth, not just developers. Slow pages lose visitors before the marketing gets a chance to work, and most sites have no idea what their real numbers are.

What you're looking at

This is the site measuring itself, in your browser, right now. These are real Core Web Vitals from your visit, not a screenshot of a good score from someone else's machine.

How it works

The numbers come from your browser's own Performance APIs: PerformanceObserver for paint and layout-shift entries, and Navigation Timing for the rest. We set up the same measurement on client sites, so conversations about speed start from real numbers.

Live Performance
Live
  • TTFBMeasuring…

    …

    Time to first byte: how quickly the server responded.

  • FCPMeasuring…

    …

    First contentful paint: when you first saw anything.

  • LCPMeasuring…

    …

    Largest contentful paint: when the main content arrived.

  • CLSMeasuring…

    …

    Cumulative layout shift: how much the page jumped around.

  • INPMeasuring…

    …

    Interaction to next paint: how quickly the page responds to you.

INP shows the slowest interaction recorded so far in this visit. Try clicking around the page and watch it change. Values are from your device and network, so they will differ from anyone else's.

Want to see client work?

Some of our client work can't be shown publicly. Ask, and we'll walk you through it in person.

Ask for a walkthrough

Ready to build what's next?

Pick the closest match and the form opens with it already selected. Four short steps, about a minute.

I'm looking for

Not sure yet

We reply to every enquiry, usually within one business day.