Decorative squares pattern
darkroom.engineering
WorkAboutContact
Decorative squares pattern
Let's talk→

Nav

  • home
  • work
  • about
  • contact

open source

  • all OSS projects
  • satus
  • lenis
  • hamo
  • tempus
  • elastica
  • aniso
  • cc-settings

social

  • github
  • X (twitter)
  • Instagram
  • LinkedIn

Inspiration

    darkroom

    ©2026 darkroom.engineering

    all rights reserved

    PolyAI1

    TURN WAITING INTO GAMING: LOOPED
    BY POLYAI BREAKS THE HOLD MUSIC HELL

    Year

    Client

    Type

    Role

    2024

    PolyAI

    Game

    front-end development / creative development / motion & interactions

    PolyAI came to us with a familiar frustration: customer service wait times that drain the soul. Instead of the usual tedious hold music, they wanted something revolutionary - a gaming experience that turns wasted minutes into actual fun.


    The catch? We had to build a browser-based 2D pixel art maze game in collaboration with Studio Freight and Glenn Catteeuw that would be engaging and responsive. Spoiler: things got playful.

    Live Site↗

    Year

    Client

    Type

    Role

    2024

    PolyAI

    Game

    front-end development / creative development / motion & interactions

    focus gameplay → minigames highlights

    gameplay experience

    PolyAI wanted to transform the painful "on hold" experience into something genuinely enjoyable. From Glenn Catteeuw's meticulous tile-by-tile design in Figma, we developed a custom game engine built on Three.js that brings his pixel art vision to life.


    Each game element was designed to be simple enough to pick up instantly, yet compelling enough to make waiting time fly by. Finding the right balance between difficulty and engagement was crucial - every movement needed to be fluid, responsive, and rewarding.

    We paid particular attention to player feedback, making sure the controls felt intuitive and satisfying. The maze experience progressively increases in complexity, keeping players engaged without becoming frustrated.

    Looped

    focus assets generation → sprites

    character design

    Each game character and element was meticulously designed to be both visually striking and technically efficient. Glenn designed the entire maze and character set in Figma—tile by tile—before exporting texture atlases with TexturePacker.


    We developed a custom sprite animation system that delivers fluid movement while minimizing memory usage and loading times - critical for a game that needs to launch instantly when someone's placed on hold.

    To handle the modular tile and sprite system, we built flexible placement tools that allowed seamless integration of assets into the game world, ensuring performance optimization without sacrificing visual fidelity.

    • LoopedSlide1

      01.

      reset — 7 frames

    • LoopedSlide2

      02.

      Hold music hell - 8 frames

    • LoopedSlide3

      03.

      Hold music hell - 8 frames

    • LoopedSlide4

      04.

      Hold music hell - 8 frames

    • LoopedSlide5

      05.

      Hold music hell - 8 frames

    Looped3Looped4

    focus ui → loading and intro / popups windows / endgame screen

    user experience

    The interface design needed to accomplish several challenging goals simultaneously: be instantly intuitive, visually consistent with PolyAI's brand, and provide clear feedback without overwhelming the player.


    Theatre.js played a key role in our creative workflow, giving Glenn real-time control to fine-tune visual effects like vignette and glitch distortions. We used Howler.js to weave in dynamic sound design, adding depth and immersion that brings the maze—and its many surprises—to life.

    Looped5Looped6

    the brief vs. what we shipped

    what they asked for

    A browser-based game to keep users entertained during customer service hold times.

    what we delivered

    A full 2D pixel art maze with multiple minigames, custom sprite generation, and an experience engaging enough that users forgot they were waiting.

    behind the pixels

    credits

    Client: PolyAI

    Pixel Art Design:

    Glenn Catteeuw

    Development: darkroom.engineering

    Collaboration:

    Studio Freight

    technologies

    front-end: next.js
    game engine: Custom-built with Three.js
    server architecture: vercel

    tools

    three.js / theatre.js / howler.js / gsap
    figma / texturepacker

    Integrations / Tools

    Custom game engine = pixel-perfect navigation and responsive feedback.
    Modular tile system = seamless integration of Glenn's meticulously designed assets.
    Theatre.js implementation = real-time control for fine-tuning visual effects.
    Custom shaders = enhanced vignette and glitch distortions for visual impact.
    Howler.js integration = dynamic audio that brings the maze adventure to life.

    Next Project

    Bad Omens

    Bad Omens
    Become an Open Source Sponsor