Import colored obj file

I have a colored OBJ file. How do I get it with all its colors in BambuLab Studio?
The origin of my file is from my 3dmakerpro Moose scanner.
When I import the OBJ file, no colors come with it.
Who can help me further?

Basic geometery ?, colour can be added with the paint tool

Coincidentally I just ran into this exercise this weekend. As you probably know, when exporting an OBJ file, one has actually three files for the color model. They are .OBJ(The mesh), .MTL(The material definition) and finally .PNG which is the color map that overlays the mesh. Apparently Bambu does not support that. I’ve tried half a dozen conversion methods to a 3MF file just to see if I could trick the slicer into processing the colors. When I do, it simply ignores the colors. What’s more, when I take a colored 3MF file from Bambu Studio and try to bring it into a 3MF view, the color information stored is apparently Bambu’s own proprietary format and does not adhere to the 3MF standard.

Here are examples of what I mean. If anyone has a solution, please speak up.

Example 1: A model I created and converted into a 3D colored 3MF file. It shows up as color in Windows Paint 3d which adhers to the 3MF standard but the same file renders as no color when brought into the slicer.

Example 2: A model from Makerworld with full color.

It shows up in the slicer as full color but in Paint 3D it renders as no color, clealry not following the 3MF standard.

I’ve tried every combination of 3MF to STL to OBJ converter and also tried it in Blender. There doesn’t seem to be any support for the 3MF standard outside of just supporting the mesh.

I started looking at possibly hacking the 3MF file from Bambu but then there I was Monday… out of time. :rofl: Maybe next weekend.

1 Like

Thanks for your detailed explanation.
Would a solution be possible with MESHLAB?
I don’t know the program myself at all, but I did read something about “vertex attribute transfer”
Kind regards,

Actually, Meshlab doesn’t support 3MF output, which is what would be needed here. Maybe you were thinking of Meshmixer, but that also only operates on mesh files like 3DS, OBJ, and STL formats.

If you’re interested in hacking the 3MF file to try your luck, I can suggest a few things. First, explore the file itself. What if I told you that a 3MF file is just a ZIP archive with a specific directory and folder structure, and all they do is change the file extension so the OS associates it with a slicer instead of an archive?

I’ve been playing around with 3MF files on and off but haven’t yet found a way to make the slicer fully cooperate, especially with colored models. Try this little experiment: take any 3MF file, rename it to .ZIP, and extract it somewhere. You’ll now have a folder structure you can hack. Some files are binary and harder to edit, but many are plain text and include things like G-code or STL mesh data.

You can find the 3MF specification at the 3MF Consortium site: https://3mf.io/
For a good overview, the Wiki page gives a shorter explanation of the format: 3D Manufacturing Format - Wikipedia

Feel free to edit the files using Notepad++, which is a more capable text editor well suited for this kind of work.

This is what the typical folder structure looks like once it’s unzipped.

Click to Expand

3MF Root
├── _rels
│ └── .rels
├── 3D
│ ├── _rels
│ │ └── model.model.rels
│ ├── model.model
│ ├── textures
│ │ ├── texture1.png
│ │ └── texture2.png
│ ├── thumbnails
│ │ └── thumbnail.png
│ └── OtherResources
│ ├── materials.xml
│ └── slices.slic
├── Metadata
│ └── metadata.xml
└── [Content_Types].xml

Legend (Bambu Lab 3MF Structure):

Click to Expand
Extension / File Location in 3MF Description
.rels /_rels/ and /3D/_rels/ Relationship mapping between files inside the 3MF archive
.model /3D/model.model Main 3D model geometry (converted from STL or other mesh)
.slic /3D/OtherResources/ Sliced layer data for the printer (binary format, vendor-specific)
.png /3D/textures/ Texture images applied to the 3D model surfaces
.xml (materials.xml) /3D/OtherResources/ Material assignments (colors, finishes, multi-material config)
.xml (metadata.xml) /Metadata/ General metadata about the print (slicer version, settings)
.xml ([Content_Types].xml) Root MIME type declarations for the package contents
.png (thumbnail.png) /3D/thumbnails/ Thumbnail image preview of the model shown on printer or slicer

Editorial Comment - Bambu Screws the community again!!!

Now, in all fairness, it’s been a while since I tried to hack this structure, but when I first looked at it (circa v1.6 of BS), it was clear that Bambu deliberately obfuscates all their secret sauce in the .SLIC file. Unless they’ve changed it recently, it looked like they chose this path because following an industry standard is harder and requires more testing to ensure compatibility, whereas making your own format means you can bypass the peer review process and keep everything proprietary.

The .SLIC file is a binary file where they store all their printer-specific data, and I strongly suspect this is where they also store color data because I couldn’t find it anywhere else in the structure.

Shame on you, Bambulab, for once again doing sh*t your own way just to block compatibility and interoperability with the rest of the world. There is no good reason to bury color data inside a binary file when the .PNG texture map is the industry standard.

1 Like

Woot! OBJ File Import Color – I LOVE IT! I was fearing that an object with 256 colors on input would translate badly in Bambu Studio. Fear NOT! I think I can deal with this. Thank you!