I am a biochemist and I would love to 3D print a multicolor model of the Corona Virus Spike protein by means of a FDM 3D printer.

As input file I downloaded a multicolor X3D-file from https://3dprint.nih.gov/niaid/sars-cov-2 In these X3D files, different colors are assigned to different parts of the 3D protein model. Usually, the 3D protein models do not have more than eight different colors. My question is now, how do I select a certain part of the protein, which has one specific color? In other words, how do I separate a part with one color from the rest of the 3D model? This separation by color is required because all differently colored protein parts have to be exported as separate STL files, which are required as input for multicolor 3D printing with FDM 3D printers.

After spending several days, I have found an insufficient solution:

  1. Import the 3D protein model in the X3D file in Meshlab and convert the vertex color to face color by " Filters --> Color creation and Processing --> Transfer color: Vertex to Face "
  2. Export this modified 3D protein model in OBJ format and don't forget to deselect color in the face section.
  3. Import the 3D protein model in OBJ format in Blender and separate 3D model by material: a) Click on the 3D-object to select it. b) Change to Edit-Mode c) Press the P key d) Separate the mesh by material --> Unfortunately this procedure does not separate by color as it results in splitting the 3D model in 5000 objects with 5000 materials instead of 8 or less parts.

Is there a better way to achieve separation by color?


1 Answer 1


There might exist a better answer without using a python scripts, which I'm not yet aware but this is all I got for now.

check this thread for a similar discussion


there is a python script which is shared by "oscurart"

go to edit mode and select a face which you want to and execute the script

enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .