CDFAM Barcelona 2026 · Barcelona · 8 April 2026

Computational Color and Texture for Additive Manufacturing

Abstract

Computational geometry has advanced considerably. Color and texture in additive design have not kept pace. As multi-material hardware and capable file formats become more accessible, programming color and texture directly into the design workflow is emerging as a meaningful new capability.

Mary Baker draws on her experience building out that toolset at Palace 3D and previously at HP Inc., covering effects that traditional modeling tools cannot easily produce:

– Embedded data: hidden messages and encoded information within a part’s surface

– Gradient control: geometry-driven color and texture transitions

– Realistic in-workflow rendering: accurate as-printed color and texture previews

– Procedural customization: automated generation of unique colorways across product families, including AI-generated content

The session also covers the workflows required to translate digital intent into reliable physical output, common failure points, and how to navigate them.

Transcript

From YouTube’s automatic captions, lightly cleaned; expect some errors. Each timestamp opens the video at that moment.

Read the full transcript · 3,872 words

0:15 Hello everyone. I’m Mary Baker and I have a very small, very new company called Palace 3D, which does consulting and contracting work for computational design for additive manufacturing. But before that, until recently, I worked at HP in their additive manufacturing business. For instance, I was the computational designer on the Starlight project, which is an automated workflow for generating factory tooling for HP’s sustainable packaging business. And I love factory tooling, but that’s not what we’re going to talk about today.

0:50 Today, we’re going to talk about an area that I think is very neglected in additive manufacturing, which is color and texture. And I did want to thank HP for letting me use examples that I designed while employed there. These are not customer parts. I think that will become clear when you see the nature of the parts. They’re very much not customer parts, but I hope they will provide good examples anyway.

1:18 So, I think a lot of us in this room are well aware that there are a lot of really excellent excellent 3D printers out there where if you can imagine a thing, you can probably print it. The problem has been that it’s hard or sometimes impossible to design that thing you imagined using traditional CAD software. And we have a similar problem with color design. There are some printers out there that do a great job of printing color.

1:42 I’m mostly familiar, of course, with HP’s Multi Jet Fusion provides full color, very robust parts, but there are printers such as Mimaki’s which can provide a photorealistic parts and over 10 million colors, and also print gradients of translucency as well as color. So, there’s some wonderful printers out there, but again, how do we design for these things? We can imagine things, but how do we design? And this is supposed to be a video.

2:10 I think it’s the only thing in my talk with a video Kodak or something is wrong, but it should supposed to show you powder bed printing one of the HP printers. You can find it on their website if you have a mad desire to see the printer working. So, we’re going to take a little bit of a whirlwind tour then through some of the workflows for designing for color and texture.

2:32 This is by no means a comprehensive set. They’re only 20 minutes, but that’s what we’re going to do. We’re going to start by thinking about the idea that there’s really quite a spectrum of how computational you might want to be about your design for color or texture, in this case color. So, over here at this far end here, I had an egg, and I was actually an experiment with little tiny hinges and and things like that, but then when I got a color printer or access to one, I decided you can pass it around I guess if you’d like.

3:09 I decided I wanted to make it color, and so what I did is I took this egg geometry and I used a paint program, digital paint program, and laboriously colored it. And it was a hideous experience and took quite a while. And now I think I could do it in a more automated fashion, you know, analyzing changes in surface curvature and things like that, but that’s where it all started, and I realized that was no good.

3:30 What I really wanted to be able to do was design with color and texture in one holistic workflow. I think was it Johannes in his talk talked about not having to switch between tools, but just be able to have one one workflow, and I find that’s very valuable to design for color and texture. So, here’s an example of a feather, and I think I did this in Grasshopper, and it’s just a simple color gradient.

3:53 And but you know, you get color that way. It’s computational color. And then there are examples of increasingly procedural ways of applying color. For instance, another kind of color gradient here in these sprouts on a dragon fruit. This might be a little hard to tell at first, but they’re actually different gradients depending on the nature of the sprout. And here, can pass this around. It comes in two pieces.

4:22 So, and if these parts eventually made their way back to me, maybe out on the table or something there, that would be great. And then finally, this last part up here, you could say that it’s really color from the very beginning of the workflow cuz the unit cell of the lattice is itself color. So, here is I’ve been told this feels just like a real life dead fish.

4:50 So, I’ve been talking about color, but there are other behaviors that we can design for the same way. So, for instance, up here, this is a design I did for Barrett Kammerzell that makes use of ultraviolet inks. So, you can have your color inks and your ultraviolet inks. Over here on the far left, this is work I did for Asia Hartmann who is the material scientist who is dealing with modulating opacity in parts.

5:14 This is a lamp panel. When the lamp’s not on, you just see a yellow surface with some flowers on it. You turn the lamp on, and you can see the areas where there’s more opacity because the light doesn’t make it through in those areas. And again, this is the kind of thing where you would like to be able to do this all in one design workflow, not have different STL segments that you’re going to try to fit together.

5:36 And so, being able to design this volumetrically in one workflow is very handy. Here’s another lamp also for Barrett Kammerzell where we were experimenting with different translucent inks and then here we were using conductive inks and this was done for a Jared Whitcoff and so this is a plastic part but the very core of it instead of just having fusing agents applied to turn the plastic powder into hard part it also has a conductive ink applied to it so it’s a very primitive resistor.

6:13 We can also think of texture along this kind of a spectrum. So on the far left there that’s not very computational it’s an interior door handle for a Ford Escape. It is not a customer part it was a part I designed for a trade show for a collaboration between HP and and Ford but it’s not very computational because I drew the paisley pattern just curves but you know just by hand but the way it’s applied for the engraving and how you soften the engraving at the edges and all of that is a computational workflow.

6:44 Here in Grasshopper they have a wonderful Penrose plugin and so it created a raised surface from that and a color gradient and then up here this is an example of a surface where both the the texture the surface displacement and the color entirely procedurally defined and by the way when I say texture I mean tactile texture so surface displacement. And here are some examples I guess. Yeah I can’t remember where.

7:17 Have some wall socket things yes. Okay so So to get started on color first often the geometry drives the color of the part and so here’s an example of a little box where there are a bunch of rounded tubes or pipes or columns that go all around the outside and the the color is defined by the normal to the surface at any point. So, as you turn the thing, it actually gives you sort of a shimmery effect as you see the colors change according to the surface normal.

7:58 And here are some examples. Have an example. If you don’t mind. And here’s another example. And the one this is for you. It’s a CD fan on it. Fortunately, it’s robust. Yeah. So, and then here, this one hmm that video doesn’t seem to be playing anyway. So, that was actually designed by my erstwhile colleague Randall West. It’s a lenticular cube where it’s instead of using little rounded ridges, we’re using sawtooth ridges.

8:33 And so, at a very acute angle or obtuse angle, the whatever you have the way of color comes into focus. So, I can’t remember. Sorry. Yell if you feel neglected. Yeah. So, that’s one kind of workflow where geometry drives surface color. Oh, I see. There we go. Now you can see it. It’s probably better to work with the actual part to see the effect cuz I have the cinematographic skills of a rather disappointing 7-year-old.

9:07 So, this is another example of geometry driving the color, but here we’re using implicit modeling to create the part. This is just your basic gyroidal lattice. And all I’ve done here is animate the frequency along the different axes of the gyroid. And I think actually the speaker following me, David Burpee, I think he also animates parameters of his designs in Houdini’s cuz it’s a nice way to explore design space.

9:30 Instead of having to manually go through a a of different parameters, you can just sort of watch it and decide that’s what I like. The point here though is that the color does change as the geometry changes because the color is dependent on the value of the gyroid along each of the axes. So, red depends on the X value and green along Y and blue for Z.

10:01 So, I thought I’d show you a little bit of an example of what computational design for color looks like. This is using Houdini, SideFX Houdini, which is a program for those of you who aren’t that familiar with it. It’s a program that is used a lot by animators and movie studios and game designers. It’s very good at pushing gazillions of points around very quickly, very powerful tool.

10:21 And in fact, I got involved with it while doing that factory tooling because if you’re making a very fine screen and have to put gazillions of little points, hundreds of thousands or millions of them around a curved surface with tight bounds on their size and their closeness, then you really need somebody to push things around this way. So, the the workflow for those of you who use Grasshopper, it looks very similar except we seem to do things vertically instead of horizontally.

10:50 And the idea is that your model is represented by data. Might be volumetric data, might be boundary surface data, might be points and polygons and things like that flows through the nodes and the nodes manipulate attributes on that data. So, for instance, for a polygon mesh, it might be color at a point, it might be the position of the point. So, here we define two VDBs. One of them is going to be the representation of what will be our surface using using a fog volume and the other will be a representation of our volumetric color.

11:27 We merge those VDBs, we activate a chunk of the space, and then here’s the code, like the gyroid equation that defines our surface, and then here’s where we define the color at any point in the volume, any voxel in the volume based off of the gyroidal equation. Then we can turn this volumetric information into a polygon mesh, and then we can transfer the color from the volumetric representation of it to the surface of our Whoops, what’s going on there?

11:56 I pressed something bad. Okay. Okay. So now here we have an example for color not just on the surface of something, but color that and translucency that goes through a part. And I know this one looks a little bit like mold in a petri dish. I was just realizing that this morning. But you can use the very same workflow for tortoise shell effects, for instance, like this.

12:22 Obviously, this is not a customer part. So here what we do is we define the geometry. We turn it into a VDB representation. And there are a bunch of parameters to the workflow. You do want to be able to parameterize your workflows cuz you want to be able to run them automatically, headlessly even. And that shows colors, the sort of basic tortoise shell background, and the corona that you find around the spots and the spots which are actually black, and some other parameters.

12:51 And then what we do is we sprinkle we scatter some points inside that volume. And this act of scattering points, either inside a volume or on a surface, is something we do a lot for procedural design of colors and textures, as it turns out. So here we scattered some points. So we have a VDB that is going to represent the shape, actually the density, and we’re going to be use that also for our level of translucency.

13:17 And then we define another VDB, which will be our volumetric color. And then we also define a third one, which is a spheres. We take a sphere Whoops, that’s not going to be the one you want to see. That’s our volumetric color and here’s a sphere and we turn it into a polygon and then we apply a little bit of code to that so that we’re going to scale it randomly along the X, Y, and Z axes and also give it a random orientation.

13:40 So when we copy it to those scattered points, we get an effect like this. And then we merge all those VDBs and here is where we have our equations for defining the density and for the interpolation between the different colors as you move from the spots to the corona to the basic background of the part and the interpolation of the color and that’s what you get. Okay, so that was color.

14:13 Let’s look a little bit at texture as well. And my title is covered up. Somehow the sizes of things seem to be a little different here than when I look at them on my laptop, so my apologies. But there are lots of ways of course to come up with a a texture. By texture in this case, we start out with an image texture instead of color, but you could go and procedurally design your image for a texture.

14:41 In this case, I I just prompted an AI for it. I think it was yeah, nano banana and it’s easy to prompt your favorite AIs from inside of Houdini workflow. So I asked for a lawn. And so if you’re going to turn an image like this into an offset tactile texture, you might want to bring forward certain elements, offset them a bit from the surface and there are different ways of doing that.

15:09 One way might be to use your to use a depth map of the image and there are of course AIs that will generate depth maps for you from any image. The problem is a lot of them have been trained on landscape data. So it works very well if what you’re doing is applying a lighthouse or something in the distance to your part. But, what it means is that things that are at the top of your image often are assumed to be further away and things that are lower down are assumed to be in the foreground, and that’s not what you want cuz it gives you just a slope surface.

15:39 And here we don’t And you can compensate for that, but then you have to do that. So, you need to be aware of what the eccentricities of your particular choices of AI are. So, here instead of using a depth map, it’s more appropriate here to use color and particular luminance to use to offset the surface. And I turned way up the lights and shininess here to try to make it a little easier to see that it is truly offset.

16:03 And here’s the equation that you Well, here’s the workflow which blurs the colors. You take your texture, your your image texture, and you’re going to translate it into point color on on your your part. So, you need a rather fine mesh on your part to make this work well. And you blur that color all across those points, so you get a little bit more of a softer effect.

16:23 And then you calculate the luminance, you find the normal to the surface at every point, and then you offset the points along that normal by some up to some maximum amount. And the way you do that is with a ramp where you use your luminance to index into that ramp, so that at low values of luminance you get a change of offset that’s a little steeper, and as you hit near if you get near your maximum offset it tapers off, so you get a more rounded effect.

16:49 This is something we often do. And you get a kind of a bas-relief effect from that, but you can also get a true bas-relief if you want. And the way to do this, in my opinion, is not to start with image data and try to use it use that to make a bas-relief, but to take an actual 3D representation and turn that into a bas-relief. So, again, here’s a Meshy AI prompted bunny rabbit.

17:16 It was almost Easter, so it’s an Easter bunny. And you squish it kind of. You can’t just squish it because you’ll end up with like with those ears, you’d end up with very thin ears with a layer of air between them and you’d have fragile ears that get caught on things, they’d fall off, it would be really hopeless. So, you have to do some other things and I’m happy to talk about that workflow for anybody who wants to make bar reliefs or I’m happy to give you the workflow that’s of interest.

17:45 So, you can actually make a It’s like a surface texture, but it’s maybe even closer to being an actual geometry, part of the geometry of the part. And then finally, here’s our example of a Oh, here I can hand around a bunny rabbit. Different bunny rabbit. I printed that bunny rabbit. There we go. Oh, if anybody’s interested, for some reason these are my favorite AI-generated parts, a macabre tea set and this one is nudibranch is preparing for his bath.

18:26 Yeah, so this was an automated workflow where customers just gave us a prompt and I wrote the back end of it that takes whatever the AI generated in the way of a 3D part and makes it actually printable. So, a lot of the AIs don’t generate things that are actually printable. And here, if anybody’s interested, is a booklet of textures. This is just one page from it.

18:47 This was also designed by Randall West and I think you can note two things from this. There’s many pages of different kinds of textures you can apply from surface offsetting like this, but color helps. So, let’s see. Okay, so this one here is a very simple workflow. In this particular case, it’s just a grid, but it could be a 3D part with a rather fine mesh. And what you do is you’re going to just going to scatter some points again, in this case on the surface.

And this very simple workflow just has parameters for two different colors. And the first thing we do is we set all the points on it to be the blue color. And then for the yellow color, what we do is for every point on that grid, we look to see if it’s within a certain parameterized distance of one of the scattered points. And if it is, we turn it yellow.

19:41 That’s all this is for the color. For the offset, we have another distance parameter, and we look at for every point on that grid, is there within that other parameterized distance offset, is there zero, one, two, or three of these scattered points within that radius? And depending on the answer, we just offset the surface different amounts. And so that’s what gives you this rather loose tie between the color and the surface offset.

20:10 But the point of this is it’s a very simple workflow, but because it is parameterized and automatic, just by playing with those parameters, you can get some very different effects from the same workflow. So just smoothness, the colors, of course, the distance parameters both for color and for offset that we search, you can get lots of different things that way. So that’s a selection of paths for automated workflows for generating color and texture.

20:39 There are lots of other things we could cover. I know I promised things like how do you get secret messages there and and things like that on your parts. But we only have 20 minutes. So I’ll leave with a few final thoughts. I think if you want to get into this area, if you’re not already involved in it, then the best color and texture design tools, like SideFX Houdini, I believe, are things that allow you to parameterize your workflows easily so that you can automate your design workflows and the ability to provide your own code and equations in them have both boundary representations and volumetric representations of your parts and be able to convert between them easily.

21:17 Be able to have both point color and also color based on your images, your texture images and the ability to transfer between those and generative AI access from your workflow and diagnostics as part of the workflow. We didn’t talk about that but different printers, different print processes have different color gamuts and you want to be able to see as part of your holistic design workflow, what will it really look like when it’s printed?

21:44 Will cyan really look like what I think it should look like? You can get some real surprises. So you want to have some ability to do that from within the workflow too. And then finally as just a last of sort of a request, one of the things I’ve been doing is writing an importer and exporter for the 3MF format for Houdini and I hope to follow on with Blender and I think 3MF is one of the best formats for representing this kind of work, especially with the volumetric extension.

22:13 And so if anybody is interested in helping to test that or to contribute to it in some way, I’d love to hear from you. So so thank you and I hope I have a chance to talk with you outside and as further encouragement for doing that, I have free stuff I can give you. To learn more about the CDFAM Computational Design Symposium, access the archive of previous presentations, interviews with speakers and information about future events around the world, visit CDFAM.com.

More from CDFAM Barcelona 2026

Digitizing Body-in-White Development with MAS Synera

Digitizing Body-in-White Development with MAS Synera

Juan de Dios Escribano Felguera; Tilman Steininger · SEAT; Synera

SubSimX: Interactive Subdivision-to-FEM for Computational Design

SubSimX: Interactive Subdivision-to-FEM for Computational Design

Johannes Müller-Römer · Fraunhofer IGD

Empowering Architects with Early-Stage Environmental Intelligence

Empowering Architects with Early-Stage Environmental Intelligence

Michele Pescatore; Carol Fanjul · AiA Life Designers

Computational Design of Personalized CPAP Masks

Computational Design of Personalized CPAP Masks

Anne Pasman; Emmy Kerssen · Saxion Hogeschool

Raven AI: The Future Is In The Spaghetti

Raven AI: The Future Is In The Spaghetti

Moritz Rietschel · Raven

Redefining mechanical engineering in the age of AI

Redefining mechanical engineering in the age of AI

Rhushik Matroja · Cognitive Design Systems

Bridging Data to Geometry with Implicit Modeling

Bridging Data to Geometry with Implicit Modeling

Wesley Essink · Siemens Digital Industries Software

Architected Porosity Informed by Real-World Data for More-Than-Human Thermal Comfort

Architected Porosity Informed by Real-World Data for More-Than-Human Thermal Comfort

Maria Claudia Valverde Rojas · University of Stuttgart, IntCDC

Real-time Multi-Physics Collaboration for Real-world Engineering

Real-time Multi-Physics Collaboration for Real-world Engineering

Nikolas Borrel Jensen; Oliver Littlewood · Pasteur Labs

Register for Updates and Discounts on CDFAM events.