Racecar is a creative, design driven studio based in Oslo, Norway. We create content across all platforms; for social media, online, television and film. We are passionate about telling engaging stories through thoughtful design, strategy, concept, direction, animation and branding, regardless of the size or scope of the job.

Founded in 2000, Racecar now numbers eight employees covering a variety of backgrounds spanning architecture, animation, graphic design, illustration and music. We believe that our diversity is our strength, which gives us the ability to approach each and every new challenge independently. Regardless of technique, 3D, animation or illustration, and whether it be title sequence, music video, or television commercial, our focus on and belief in the power of design has always been at the forefront as we approach each new project.

Our approach


Concept & Consulting

We take a conceptual approach to each project, helping our clients find the best way to communicate effectively with their audience. Always with a strong focus on storytelling as an effective means of communication.



We approach each new challenge through a collaborative process involving the whole team, drawing from our diverse backgrounds to deliver the best solution.



A good story needs to be well told. This is why we advise and help our clients to write and refine script and story in order to deliver their message as clearly and concisely as possible.



We believe that less is more. But sometimes more is more! So we treat each project as a unique and individual challenge, employing techniques and media appropriately.


A–Z Production

From consulting to ideating via production right through to delivery, we work with all aspects of a project, believing each stage an equally important and fun part of the process.



Racecar is a passionate group of individuals who love what they do and firmly believe in the power of design to amaze and amuse, compel and engage.

selected Clients


document.addEventListener("DOMContentLoaded", function dumpDups() { const rr = new Set(); for (const div of document.querySelectorAll(".Text Block 24")) { if (rr.has(div.textContent.trim())) { div.parentNode.removeChild(div); } rr.add(div.textContent.trim()); } dumpDups(); });