gitwtfhub

wtf is paintport?

perspektive3d/paintport — explained in plain English

Analysis updated 2026-05-18

3HTMLAudience · generalComplexity · 2/5LicenseSetup · easy

TL;DR

A free single-file web tool that remaps painted 3D printing colors between Bambu Studio, MakerWorld, and PrusaSlicer so your actual spool colors print correctly.

Mindmap

mindmap
  root((repo))
    What it does
      Remaps 3MF paint colors
      Matches your spool slots
      Creates ColorMix blends
    Tech stack
      HTML
      JavaScript
      Node.js tests
    Use cases
      Print MakerWorld models
      Convert between slicers
      Fix missing colors
    Audience
      3D printing hobbyists
    Setup
      Single HTML file
      Runs offline in browser
      No install needed

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Convert a painted MakerWorld 3MF model to the right filament colors for your Prusa Core One INDX printer.

REASON 2

Remap a Bambu Studio painted 3MF file to your own spool colors before printing in a different slicer.

REASON 3

Recreate missing colors as ColorMix blends when your spools do not match the original model's colors.

What's in the stack?

HTMLJavaScriptNode.js

How it stacks up

perspektive3d/paintportgdr-sys/image-optimizer-prohannah-wright/saas-landing-page-template
Stars333
LanguageHTMLHTMLHTML
Setup difficultyeasyeasyeasy
Complexity2/51/51/5
Audiencegeneralgeneralvibe coder

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 5min

You must open the exported file in your slicer as a project, not as geometry, or the colors are lost.

You can use and modify this freely, but if you distribute it or run a modified version as a network service, you must share your source code under the same license.

Wtf does this do

PaintPort is a free, single-file web tool for people who 3D print multicolor models. It solves a specific problem: when you download a painted 3MF file from Bambu Studio, MakerWorld, or OrcaSlicer, the color information only makes sense in the original slicer's setup. Other slicers can read the painting pattern but not what it actually means, so colors you do not have loaded get lost, and each slicer stores color blends in its own incompatible format. PaintPort fixes this by remapping the painting data in a 3MF file to your actual spool colors, then saving the result in the format your target slicer expects, whether that is PrusaSlicer for the Core One INDX printer, Bambu Studio, or Snapmaker Orca. If a color in the original file does not match any spool you own, PaintPort can recreate it as a ColorMix blend instead. Using it is simple. You open the tool in a browser, drop in a painted 3MF file, tell it which spool color is loaded in which printer slot, or pick a ready made preset like CMY or WKCMY, click Auto-map, review the results, choose your target slicer, and export. The exported file must then be opened in the target slicer as a project, not as plain geometry, or the color information will be lost. The entire tool is a single HTML file that runs completely offline in the browser. There are no uploads, no server, and no tracking, aside from three small locally stored settings for language, theme, and whether you have seen the welcome message. It requires a fairly recent version of PrusaSlicer, Bambu Studio, or Snapmaker Orca, plus a modern browser with Compression Streams support, such as Chrome, Edge, Safari, or Firefox. PaintPort is released under the AGPL-3.0 license and was inspired by an earlier project called Primed3D. It is built and maintained by perspektive3D, who also runs a YouTube channel.

Yoink these prompts

Prompt 1
Explain how to use PaintPort to remap a MakerWorld painted 3MF file to my PrusaSlicer Core One INDX spool colors.
Prompt 2
Walk me through the Auto-map step in PaintPort and what to check before exporting.
Prompt 3
Tell me why I need to open the exported file as a project instead of importing it as geometry in my slicer.

Frequently asked questions

wtf is paintport?

A free single-file web tool that remaps painted 3D printing colors between Bambu Studio, MakerWorld, and PrusaSlicer so your actual spool colors print correctly.

What language is paintport written in?

Mainly HTML. The stack also includes HTML, JavaScript, Node.js.

What license does paintport use?

You can use and modify this freely, but if you distribute it or run a modified version as a network service, you must share your source code under the same license.

How hard is paintport to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is paintport for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.