All posts
Studio / 3D

Three.js, React Three Fiber, or Unreal: How We Pick a 3D Engine for a Client Brief

ZKO blog tile: 3D

Every 3D configurator or interactive experience we build starts with the same unglamorous question before a single model gets touched: what should this actually run on. Three.js, React Three Fiber and Unreal Engine can all produce excellent real time 3D, but they solve different problems well, and picking the wrong one for a brief creates work nobody notices until launch week.

Three.js is our default for anything that has to run instantly inside a normal web page with no install and no plugin, a product configurator embedded on a partner's ecommerce site, for example. It is lightweight, has no licensing cost tied to revenue, and gives us full control over exactly what loads, which matters when a client's marketing team wants the page to work on a mid range phone on mobile data, not just a demo laptop on the studio wifi.

React Three Fiber earns its place when a 3D scene needs to live inside a larger, already React based product, a dashboard, a configurator with a lot of surrounding UI state, or a tool being built by a team who will maintain it after we hand it over. Wrapping Three.js in React's component model makes that handover far cleaner than a bespoke Three.js codebase would, even though it adds a layer most standalone experiences do not need.

Unreal is the answer when visual fidelity has to be close to film quality and the output does not need to live inside a browser tab, a rendered campaign film, a real time showreel for an event screen, or pre-viz work where lighting and material realism genuinely change how a client reads the pitch. It is the heaviest option to build and ship, so we reach for it only when the brief specifically needs what it is uniquely good at.

None of these choices is really about which engine is best. It is about matching where the thing needs to run, who has to maintain it, and how real it needs to look, to the tool built for that job.