A simple web app that takes STLs for 3D printing and applies realistic highlights and shadows based on virtual light in the scene. Intended to work with Prusa ColorMix (in PrusaSlicer and EasyPrint), which allows for mid tones by combining two base colors.
Loading README and project media…
Client-side STL/OBJ color-material preview and 3MF export tool.
Live demo: prusa3d.github.io/Color-Mix-Shading
This app is a Vite React single-page app. Build it with:
npm run build
The production output is written to dist/. The Vite config uses base: './' so generated asset URLs are relative and work on static hosts, including deployments served from a subpath.
Vitenpm run builddistnpm run builddistVitenpm run builddistA workflow at .github/workflows/deploy-pages.yml builds and deploys to GitHub Pages on every push to main (and can also be run manually via the Actions tab).
One-time setup (requires repo admin):
main (or run the Deploy to GitHub Pages workflow manually from the Actions tab) to trigger the first deploy.github-pages environment.The Vite base: './' setting means the build works whether Pages serves the site from the root domain or a /<repo>/ subpath, so no extra config is needed.
The deployed app does not need a Node.js runtime. Node is only required during install/build. Mesh parsing, preview rendering, material assignment, and 3MF packaging all run in the browser.
Released under the MIT License.