
A few weeks ago I sat down with Robert and Bence to ask them about Decals, the feature that lets you put your own graphic on a model in Shapr3D. I expected a quick technical walkthrough. What I got instead was a much better story, and a decent sense of how the two of them actually work, mostly calm, a little dry, allergic to overstating things.
Ask most users what they think of Decals and you'll get something like: "oh, that's how I add my logo to a model." Simple. Obvious, even. That reaction is exactly what hides how much went into it, and why the story behind it says more about the team than the feature itself does.
Before Decals, if you wanted to put your own graphic on a model, a logo, a product label, a control panel, some reference artwork, you were working around the edges of tools that weren't really built for it. You could place images in limited ways, but you couldn't attach one cleanly to a curved or arbitrary surface, or use an image as a live reference while sketching directly on a face.
It wasn't just one person asking for this. Consumer product designers wanted branding, industrial designers wanted labels and control panels, hobbyists wanted custom artwork, engineering teams wanted reference images mid model. "We'd had plans to deliver this for years," Robert told me, "so by the time we actually started, we were full of ideas." Earlier user research had already pointed at the same broad demand. Once the team looked into it properly, it turned out almost everyone wanted some version of the same thing, they just hadn't joined the dots yet.
The first assumption was that decals would mainly help with presentation, making renders and screenshots look a bit better. So that's where prototyping started.
But once working prototypes went in front of designers, it became clear people didn't just want decals in the final render, they wanted them while they were actively designing. That shift, from "presentation only" to "part of the modeling workflow," changed most of the decisions that came after it, and made the problem considerably harder than first assumed.
Rather than go back and forth in meetings, the team just built a few working prototypes so designers could try them out directly. It also meant they could get a rough sense of implementation cost early, which helped pick a direction with more confidence than a guess. "When the right answer isn't obvious," Robert said, "it's usually faster to just build something small and see how people react than to keep arguing about it." He said it like it was the most obvious thing in the world, which, talking to him, is fairly on brand.
Most software that supports decals works with static polygon meshes. Think of it like printing a sticker onto a finished plastic model: once the shape exists, you stick the image on and you're done.
Shapr3D doesn't work that way. Models aren't built from a fixed mesh, they're represented as B-rep geometry, essentially a structure of surfaces, edges, and faces that stay editable rather than locked in place. A user can go back and change a dimension, round off an edge, adjust a feature, at any point, and the surface underneath a decal shifts as a result. The simplest option would have been to just delete the decal whenever that happened and let the user redo it. The team wanted to avoid that, so they set out to make decals stay attached to a design and update automatically as the model evolves.
The decal image itself couldn't just be applied once and left alone either, since different surface shapes need different ways of projecting an image onto them. They started with parallel projection, essentially projecting the decal from a flat plane, a bit like shining a slide projector onto a shape.

It worked well for a lot of geometry, but distorted noticeably on curved surfaces like cylinders and spheres, similar to how a label stretches oddly if you wrap it around a bottle without accounting for the curve. So they added a second method, cylindrical projection, built for curved surfaces, along with logic to detect which approach a given surface actually needs.

I asked if there was a simpler way to explain any of this to someone outside engineering. Robert thought about it for a second, then laughed and admitted he genuinely couldn't come up with one. Fair enough. Some things are just fiddly, and they'd rather tell you straight than force an analogy that doesn't quite hold up.
Then there's a part that's easy to overlook: users expect a decal to naturally continue across neighboring faces, like a label wrapping smoothly around the corner of a box. That's straightforward enough, until you remember that a model's surfaces are constantly changing as it's edited, faces split apart, merge together, disappear entirely. Keeping track of which surfaces are still "connected" after each of those changes, so a decal doesn't suddenly fall apart, took a fair bit more work than projecting onto a single face.

And once all of that worked, it also had to look identical across every rendering engine Shapr3D supports: Modeling, Visualization, and the Webviewer. Which meant solving the same projection logic more than once, in more than one place, and getting a consistent result each time.

Day to day, the work split into a few independent tracks, projection, rendering, UI, persistence, geometry handling, so different people could make progress without constantly blocking each other, while staying in regular sync with designers and product as things evolved.
Before the public release, several beta versions shipped to the Gamma community, and that feedback genuinely shaped the feature. Bence still remembers one comment clearly: early on, applying the same logo to a model twice meant importing the same image twice, and a Gamma user called it out almost immediately, more or less asking why they had to do the same tedious thing over and over. "That one stuck," Bence said. Reusable decals got built in response before launch ever happened. Other detailed reports, projection artifacts, edge cases in face chaining, scaling limits on very small decals, kept shaping things well past release too.
Decals seems to have quietly become the default way people put graphics on a model. Plenty of users who used to reach for the Image tool now use Decals instead. Hundreds of people add decals to their workspaces every day, and the forums are still active with bug reports, enhancement requests, and new ideas, a sign people are actually building things with it, not just trying it once.
When I asked what they'd do differently, neither had a big answer. Building a few small prototypes early, before committing to a direction, was what let them get the product questions right before investing too much in implementation. And splitting the work into independent tracks mostly just kept them out of each other's way.
I also asked if there was ever a point either of them thought this wasn't going to work. Both just said no, no hesitation, no story attached. Nothing about it felt dramatic while they were doing it. It just took a while, and a lot of small decisions, made together, to get right. Talking to them, that's probably the most honest description I've heard of how we actually solve hard problems here.