Official print presets for Polymaker 3D printing filaments, optimized for use with BambuStudio, OrcaSlicer, ElegooSlicer, PrusaSlicer, and other compatible slicers.
Issue: P2S printer overheating when printing materials with vitrification temperature > 50Β°C due to starting G-code issues.
Solution: We have implemented a temporary fix by adding cooling G-code commands to the filament_start_gcode for all P2S presets with vitrification temperature > 50Β°C:
M145 P0 ; set airduct mode to cooling mode for cooling
M106 P2 S255 ; turn on auxiliary fan for cooling
M106 P3 S127 ; turn on chamber fan for cooling
M1002 gcode_claim_action : 29
M191 S0 ; wait for chamber temp
M106 P2 S102 ; turn on chamber cooling fan
M106 P10 S0 ; turn off left aux fan
M142 P6 R30 S40 U0.3 V0.8 ; set PETG exhaust chamber autocoolingThis is a temporary workaround. We will remove this change after Bambu Lab fixes this issue.
Acknowledgements: Thanks to alexbreinig for pointing out this issue and capsel22 for reporting it in the BambuStudio issues. For more details, see: bambulab/BambuStudio#8801
Issue: Bambu Lab printers that offer more than one extruder/nozzle option (for example the multi-nozzle machines such as X2D and the H2 series) store a separate set of values for each option inside a single filament preset. The available options are:
Direct Drive StandardDirect Drive High FlowBowden StandardBowden High Flow
For some materials we have only tuned and authored values for one option (typically Direct Drive Standard). The remaining options are left empty (nil) in the preset, which means the auxiliary / additional nozzle has no tuned values for that material. This includes the auxiliary (Bowden) nozzle on dual-nozzle machines.
What we do about it: When you download presets from the download page, the site checks each selected preset. If any of them are missing values for one or more nozzle/extruder options, a warning appears before the download starts. The warning lists exactly which material and which options have no preset, for example:
We didn't make presets for these variants:
- PolyLite PLA β Bambu Lab X2D: Direct Drive High Flow, Bowden Standard, Bowden High Flow
You can still continue the download β the listed nozzle options simply won't have tuned values, so they fall back to the slicer's generic settings. Printing on the option that does have a preset (usually the main Direct Drive nozzle) is unaffected.
We are progressively adding presets for the remaining nozzle options. If a material you need is missing values for a nozzle option you use, please let us know.
Visit our download page: https://presets.polymaker.com
- Download the preset .bbsflmt file (or bundle ZIP) from the download page.
- If it's a ZIP file, unzip it to extract the .bbsflmt file(s).
- Open Bambu Studio.
- Go to File β Import β Import Preset....
- Select the .bbsflmt file(s).
- Click on a material in the project consumables list, select the imported custom preset, and the preset will appear in the preset list.
Note: .bbsflmt bundles are only available for BambuStudio. The bundle download button appears when BambuStudio presets are selected.
- Download the preset JSON file (or single-file ZIP) from the download page.
- Open Bambu Studio.
- Go to File β Import β Import Preset....
- Select a JSON or ZIP file.
- Click on a material in the project consumables list, select the imported custom preset, and the preset will appear in the preset list.
- Download the preset as JSON or single-file ZIP from the download page.
- Open OrcaSlicer or ElegooSlicer.
- Go to File β Import:
- For a JSON file: choose Import Configs... (OrcaSlicer) or Import Preset... (ElegooSlicer), then select the JSON file.
- For a ZIP file: choose Import Zip Archive... (or the equivalent, e.g. "Import Zip Archiveβ¦" in ElegooSlicer), then select the ZIP file (no need to unzip).
- The preset will appear in your preset list.
- Download the preset as an INI file from the download page.
- Open PrusaSlicer.
- Go to File β Import β Import Config....
- Select the INI file.
- The filament preset will appear in your preset list.
Polymaker-Preset/
βββ index.html # Main download page (GitHub Pages)
βββ app.js # Frontend logic (filters, downloads, themes)
βββ style.css # Styling (dark theme + wiki light theme)
βββ index.json # Auto-generated index of all presets
βββ package.json # Node.js project configuration
βββ assets/ # Static assets (logo, fonts, banner)
β βββ logo/ # Polymaker Teal.png (en), Chinese_NoSlogan_Teal.png (zh)
β βββ banner/ # LayerHub banner art, logos, mail icon
β βββ font/Figtree/ # Self-hosted Figtree variable fonts (.ttf)
βββ worker/subscribe/ # Cloudflare Worker β Brevo LayerHub Waitlist
βββ preset/ # All preset files
β βββ <Material>/
β βββ <Brand>/
β βββ <Model>/
β βββ <Slicer>/
β βββ <Preset>.json | <Preset>.ini
βββ scripts/ # Build/maintenance scripts
β βββ generate-index-json.mjs # Generates index.json from preset files
β βββ app-filter.test.mjs # Filter logic tests
β βββ generate-index-json.test.mjs # Index generation tests
βββ tests/ # Test suite
β βββ app.test.mjs # Frontend application tests
β βββ rigorous.test.mjs # Rigorous validation tests
β βββ bbsflmt.test.js # BBSFLMT format tests
β βββ bbsflmt-tests.js # Additional BBSFLMT tests
βββ .github/workflows/ # CI/CD automation
β βββ auto-update-index-json.yml # Auto-regenerates index.json on PRs
β βββ test.yml # Test runner workflow
βββ README.md # This file
βββ AGENTS.md # Developer documentation
- Panchroma PLA
- Panchroma PLA Celestial
- Panchroma PLA Galaxy
- Panchroma PLA Glow
- Panchroma PLA Luminous
- Panchroma PLA Marble
- Panchroma PLA Matte
- Panchroma PLA Metallic
- Panchroma PLA Neon
- Panchroma PLA Satin
- Panchroma PLA Silk
- Panchroma PLA Starlight
- Panchroma PLA Translucent
- Panchroma PLA UV Shift
- PolyLite CosPLA
- PolyLite PETG
- PolyLite PETG Translucent
- PolyLite PLA
- PolyLite PLA Galaxy
- PolyLite PLA Glow
- PolyLite PLA Luminous
- PolyLite PLA Neon
- PolyLite PLA Pro
- PolyLite PLA Pro Metallic
- PolyLite PLA Starlight
- PolyLite PLA Translucent
- PolyTerra PLA
- PolyTerra PLA+
- PolyTerra PLA Marble
- Polymaker HT-PLA
- Polymaker HT-PLA-GF
- Polymaker PETG
- Polymaker PETG Galaxy
- Polymaker PLA
- Polymaker PLA Pro
- Polymaker PLA Pro Metallic
- Fiberon PA12-CF10
- Fiberon PA6-CF20
- Fiberon PA6-GF25
- Fiberon PA612-CF15
- Fiberon PET-CF17
- Fiberon PETG-ESD
- Fiberon PETG-rCF08
- BBL (Bambu Lab): A1, A1M (A1 Mini), H2D, H2S, P1P, P1S, P2S, X1
- Anycubic: Kobra S1
- Elegoo: CC2
- Prusa: Core One
- Snapmaker: U1
Presets are updated regularly based on:
- Polymaker material specifications
- Community feedback (after validation)
- Testing with various printer models
Last Updated: Check the index.json file for the latest update timestamp (updatedAt field).
This project includes a comprehensive test suite to ensure preset quality and consistency.
# Run all tests
npm test
# Run all tests (including both .mjs and .js files)
npm run test:all
# Run tests with coverage report
npm run test:coverage
# Run only app tests
npm run test:app- app.test.mjs - Frontend application logic tests
- rigorous.test.mjs - Rigorous validation of preset structure and data
- bbsflmt.test.js - BBSFLMT bundle format validation
- generate-index-json.test.mjs - Index generation script tests
- app-filter.test.mjs - Filter functionality tests
- Node.js 20.20+ (20.x), or 22.22+ (recommended)
No build step is required for the frontend. To preview locally:
# Option 1: Python HTTP server
python3 -m http.server 8000
# Option 2: Node.js http-server (if installed)
npx http-server -p 8000Then open http://localhost:8000
If you add or modify preset files, regenerate the index:
npm run generate-index
# or
node scripts/generate-index-json.mjsGeneration works without installing dependencies when POSTHOG_API_KEY is unset.
For optional build analytics, run npm ci and provide POSTHOG_API_KEY through
your shell or CI environment; POSTHOG_HOST optionally overrides the US endpoint.
These scripts do not load .env automatically. Keep credentials out of tracked
files and generated site content. This integration records build events, not
website visitor activity.
The PostHog build analytics GitHub Actions workflow runs after pushes to
main, or manually from the Actions tab on main. Set the repository secret
POSTHOG_API_KEY to your PostHog project token and the repository variable
POSTHOG_HOST to your ingestion endpoint (for example, https://us.i.posthog.com).
It installs dependencies and runs both generators, sending index_generated
and seo_injected events under github-actions. Generated files stay in the
temporary runner; this workflow does not commit changes or publish the site.
Pull request tests and preset-update jobs continue to run without analytics.
analytics.js loads the PostHog browser SDK on presets.polymaker.com using the
public write-only project token. Local and preview hosts do not send PostHog
events. This is separate from the Node build SDK and GitHub Actions secrets.
PostHog records pageviews ($pageview), page leaves, automatic interactions
($autocapture), and filter_changed with the selected filter and value.
The existing successful-download handlers send download_single,
download_selected, download_bundle, and download_bundle_batch to both
Google Analytics and PostHog, including material/printer/slicer metadata where
available. A download event means the browser was handed the generated file;
it cannot confirm the user saved or imported it. Session recording is disabled.
View these events in PostHog Activity, or use Web analytics for visits and Product analytics for filter and download usage. Ad blockers or a visitor's analytics opt-out can prevent events from arriving.
- Download Page: https://presets.polymaker.com
- Polymaker Official Website: https://polymaker.com/
- Polymaker Wiki: https://wiki.polymaker.com/
- Polymaker Store: https://shop.polymaker.com/
- GitHub Repository: https://github.com/Polymaker3D/Polymaker-Preset
- YouTube: https://www.youtube.com/@Polymaker
- Instagram: https://www.instagram.com/polymaker_3d
- Facebook: https://www.facebook.com/Polymaker.3D