Skip to content

Latest commit

 

History

12,210 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

BambuStudio

Bambu Studio is a cutting-edge, feature-rich slicing software.
It contains project-based workflows, systematically optimized slicing algorithms, and an easy-to-use graphic interface, bringing users an incredibly smooth printing experience.

This fork's maintained delivery target is native Windows UI modernization informed by Material Design 3. The latest Windows installer is a per-user install and does not require administrator elevation. It is currently unsigned; verify the accompanying SHA-256 file before running it. This fork is Windows-only. macOS and Linux support has been removed from the tree: the platform sources, build scripts, packaging and CI jobs are gone, and CMake fails fast when configured on any other system. Cross-platform builds remain available upstream from Bambu Lab.

The Windows UI provides three canonical fork modes: English (en), playful Hong Kong Cantonese preview (yue_HK), and compact English + Cantonese preview (bilingual_en_yue_HK). Existing Bambu Studio locales remain available. Missing Cantonese copy falls back to English; native bilingual presentation is opt-in on migrated surfaces, and the Cantonese catalog remains a curated preview pending broader human review. See the language-mode documentation for coverage and fallback details.

Native UI modernization (Material Design 3)

The production wxWidgets application now consumes the vendored Material Design 3 design system end-to-end. The canonical in-repo design source is ui-md3/design-system/; its token values match src/slic3r/GUI/Widgets/MD3Tokens.hpp exactly, and the native code resolves colors through semantic tokens instead of hardcoded hexes. A ground-up migration converted theme colors and fonts across essentially the whole GUI tree (roughly 120 files over six waves), backed by Roboto and Roboto Mono shipped as application resources. Contextual schemes are resolved per workspace: brand green for Prepare and general UI, Preview purple for the G-code preview, and Device teal for the printer surfaces. Functional data colors (ink swatches, G-code feature colors, 3D paint palettes) are deliberately preserved.

Beyond the token layer, an element-by-element conformance register (docs/features/design-system/md3-parity-register.md) drove nine implementation waves of structural component anatomy. As of 2026-07-22 the register stands at 120 rows done, 4 recorded deviations (each documented with concrete evidence in the register), and 5 open rows — the deep Prepare-sidebar rebuilds (printer identity card, bed field, ink info-rows, Process card, Objects card) — which are being finished in a concurrent implementation wave. Landed anatomy includes the Material Symbols icon font and ImGui glyph atlas, the rebuilt shared widget kit, the MD3Dialog shell with the MessageDialog family and the raw-wxMessageBox sweep, the kit title bar, the Preferences NavRail with runtime density/accent controls, the device camera HUD and card grid, the Preview timeline transport bar, and the glyph-to-GL-texture bridge for the 3D toolbar and gizmo rail. The register itself is the live tracker; counts above are as of this writing.

Two native features were added in the same effort:

  • A native OpenGL model preview for the MakerWorld "Download and Open" flow shows an interactive orbit/zoom/fit view before import, with Open in Prepare and Close actions and a failure-safe fallback to the normal import. See MakerWorld OpenGL preview.
  • A dockable Prepare sidebar can be docked left, right, top, or bottom (default left) and re-docks live from a Preferences control. See Dockable Prepare sidebar.

Full documentation of the token layer, migration, failure modes, and audit result is in Vendored Material Design 3 design system. The native split actions, option menus, segmented selectors, links, tabs, Ink Dispenser controls, Filament Manager, Project page, and setup guides now share a documented keyboard, assistive, zoom, and responsive-layout baseline; see Keyboard, assistive, and responsive GUI accessibility.

Live application captures

These are captures of the running native executable at the current tip, produced by launching the built binary on an isolated off-screen desktop (via the headless computer-use harness) over a software OpenGL renderer, and capturing individual windows with PrintWindow. That method renders wxWidgets chrome and panels but not the OpenGL 3D viewport or the webview-backed panes (the Home body and Ink library are web content), so those regions appear empty in whole-window shots; the Prepare capture is a direct sidebar-panel grab to show real migrated content. The frame shot dates from 2026-07-26 and the sidebar from 2026-07-28, both taken after the ink rename.

Fresh release capture set — 2026-08-11

The native binary was built by build-installer.bat /s from source commit ca49ec7d9f6623a5474ec85d6b5b3c556ab2ab8a, then launched on a named hidden desktop through the Cheap Lowlevel route. Each image below is a real PrintWindow capture resolved from the live window list; the documentation-only descendant fe52d9766d900f09d7611d1dc5e0bc24854ca1cf does not change these pixels.

Fresh native main surface Fresh Setup Wizard surface
Fresh Bambu Studio native main surface with Home and project tabs Fresh Bambu Studio Setup Wizard welcome surface

Home — with the browser-like project tab bar

The new project tab strip (one tab per open project, a close button, and a "+" new-tab button) sits between the Material title bar and the workspace tabs.

Sliced preview with the project tab bar

The Home tab and the Setup Wizard body are WebView2 surfaces, shown below as rendered from the app's own bundled page assets (a native-window capture cannot include WebView2 compositor content, which is why earlier captures of them were blank):

Home page

Prepare sidebar (Material cards) First-run Setup Wizard (welcome page)
Prepare sidebar Setup Wizard welcome page

The Prepare sidebar shows the migrated Printer, Ink, Process, and Object-manipulation cards — including the Process card's Quality / Strength / Support / Others segmented control and the head of the axis-colored X/Y/Z manipulation grid; that grid's rows sit below the fold at this panel height and the panel scrolls to them. The Setup Wizard is now hosted on the Material dialog shell (rounded surface, header icon tile) in place of the legacy native caption.

Feature gallery — every page, every button

The full screenshot matrix lives under docs/screenshots/: one capture per page and one per button for every feature, taken headlessly from the real running app (Mesa llvmpipe + PrintWindow for the native surfaces, rendered page HTML for the webview surfaces).

Non-blocking notifications — informational messages are corner toasts, not modal dialogs. The proof shot: loading a model raises the dark inverse-surface snackbar over the live scene while the UI stays fully interactive.

Non-blocking info toast over the Prepare scene

Version history (local Git snapshots) Regex builder (on every search bar)
Version history dialog Regex builder popover
Appearance settings (theme / density / accent / font) Project tabs (one tab per project)
Appearance tab Two project tabs
Preferences · General Preferences · Other
General tab Other tab
File menu (Version history · Open in External Editor) Setup Wizard · Ink Selection
File menu Wizard ink page
Config profiles & backup (slide-to-confirm export) Settings search on the full process tree
Config profiles & backup dialog Search settings pill on the Simple settings bar

Prepare sidebar · process settings — the full process tree is the settings-tab layout hosted in the sidebar, so Advanced mode widens the dock (weakly: capped at 55% of the frame, grow-only, and the sash stays draggable) and the body gained a real horizontal scrollbar as a backstop. The header row had been over-subscribed badly enough that the Process title and the Compare button were allocated zero width and vanished. Details and measurements: docs/features/prepare/process-settings-sidebar.md.

Before — values cut off, title and Compare button gone After — values, units, tabs and title all present
Clipped process settings Readable process settings
Header before (starved) Header after
Starved header row Intact header row

Per-feature folders with every button close-up: notifications · version-history · regex-builder · appearance · preferences · project-tabs · main-window · home · wizard · config-profiles · smart-home · sidebar-process

Earlier installed-app captures

Reviewed on 2026-07-20; these predate the full token sweep and are kept for continuity. They also predate the ink rename, so their captions and their on-screen labels are the pre-rename wording — the shipped page is "Ink Manager" now. See Ink terminology.

Home Filament Manager (pre-rename capture)
Native Home Native Filament Manager
Device boundary Project Version History
Native Device plug-in gate Native Version History

Interactive design reference

The images below are deterministic captures of the separate ui-md3 interactive design reference, not screenshots of the native application. Select an image to open the same reference screen, theme, density, accent, and language state. The installed-app captures are the separate gallery above.

Bambu Studio reimagined in Material You, with a desktop 3D printer and luminous toolpaths

The Pages site is a browser-style tabbed application, not a scrolling landing page: eight tabs with a strip you can pin, drag, group and search; English and Hong Kong Cantonese copy at five funny levels per language on two independent sliders; a full ECMAScript regex builder behind every search bar; a changelog viewer covering every published release; and a one-in-ten dim sum surprise. Code, fonts and interface artwork are served from this repository with no CDN, analytics or trackers. On an eligible repeat visit, the surprise loads one published photo from the public dim-sum catalog without sending a referrer. Deployment is gated on 447 measured layout cases in a real headless browser. Open the site, read the site documentation, or see the visual showcase documentation.

Prepare · light theme · English

Bambu Studio Material Design 3 Prepare design reference in the light theme and English

Preview · dark theme · Hong Kong Cantonese Device · compact dark theme · English + Cantonese
Bambu Studio Material Design 3 Preview design reference in the dark theme and Hong Kong Cantonese Bambu Studio Material Design 3 Device design reference in the compact dark theme with English and Cantonese

Home Assistant printer handover

The native Smart home dialog implements two explicit ways to add currently accessible printers to the companion Ding-Ding-Projects/ha-bambulab integration: a confirmed service call through the user's Home Assistant long-lived token, or a temporary local discovery window that needs no Home Assistant token. Both paths disclose that printer LAN access codes are credentials before transfer. Discovery sharing is off by default, uses a fresh high-entropy pairing capability, and stops when the toggle is disabled or the dialog closes. Home Assistant work uses owned bounded queues, coalesces Connect and volume-slider bursts, caps printer/speaker/light fan-out at 32, imports printers in four-wide waves, paces mDNS replies, and cancels and joins its workers during app shutdown. If shutdown lands after an alert-light scene is created but before any flash, the unused scene is deleted instead of leaking. The resizable Smart home dialog keeps its footer fixed around a scrolling body and is implemented to wrap long English, Cantonese, and bilingual content instead of clipping it.

The focused Windows Release targets build successfully: home_assistant_tests passes 30 test cases and 267 assertions, all five focused CTest entries pass, the Cantonese catalog contains 718 checked translations, the static Pages/i18n/clipping suite passes 50/50, and the browser Pages matrix passes all 447 cases — 156 on the landing page, 288 that activate every tab, and 3 compact corner-surface cases. Ubuntu's CJK font metrics then exposed the translated Screens / 畫面 header target shrinking to 31.984×44 pixels at two desktop widths; commit 32a5cc6d7 adds a 44-pixel width floor, and hosted Pages run 30359493216 passes the full matrix. The production sharing probe also completed cross-host PTR/SRV/TXT/A discovery, one authenticated bounded fetch, and the zero-TTL goodbye. The full BambuStudio_app_gui Release build exited successfully after 3,387 seconds, followed by an 8.3-second no-change build. Native headless review at 720×760 and the declared 520×480 minimum found text actions incorrectly squeezed to 44 DIP; after the responsive-action fix, a 141-second focused rebuild and link plus an 8.0-second no-change build passed. The later nonvisual import-scheduling and cancellation-cleanup fixes compiled and linked in 214.808 seconds; the final no-change build took 8.544 seconds. The final 151,299,584-byte DLL is timestamped 2026-07-28 08:15:46 -04:00, with SHA-256 41BB1BFC754E3184C5908E2145A93E3640D3866E59380F32EEFF7A76F418E972. The primary corrected English captures were recaptured from that exact final DLL and are in docs/screenshots/smart-home/. The media-action close-up remains from the preceding EBF646… DLL; the later source fixes changed only nonvisual printer scheduling and alert-light cleanup, not SmartHomeDialog or MsgDialog layout. Native bilingual capture, live Home Assistant confirmation and service paths, physical-printer success, and the still-running Windows release verdict are tracked separately in issue #16. The implementation and 44-pixel correction are pushed and remotely proven; this summary still does not substitute for the remaining live-runtime evidence. See Smart home for behavior, security, failure modes, and the honest verification boundary, and Home Assistant printer-discovery API for the temporary HTTP/mDNS contract and Postman collections.

Windows installer

The supported Windows installer is Squirrel.Windows. It produces the standard unsigned Setup.exe, RELEASES feed index, full .nupkg, and any delta packages Squirrel can generate, alongside a SHA-256 sidecar and CycloneDX SBOM. The package records the exact source commit in its NuGet metadata, and the release workflow verifies the package layout and unsigned Authenticode status before publication. The old NSIS UI-page path is retired; local source builds remain available through the documented one-click build scripts. See Windows native installer, Windows one-click build, and Build from source.

Project history

The native app includes app-local, Git-backed version history for .3mf projects. Each retained revision is a complete project snapshot in an isolated bare repository below Bambu Studio's data directory, never a .git directory beside the user's project. Automatic edits and completed manual saves are queued in order; identical snapshots are suppressed. File → Version history lists and restores revisions without directly overwriting the saved project, and Save As forks the existing history to the new project identity when it is safe to do so.

History is local to this device: it is not pushed to the source-code repository, synced to another computer, or a replacement for backups. There is not yet a retention or pruning policy, so storage can grow with project size and edit count. A restore changes the open session; the project file is only replaced when the user explicitly saves it.

The Windows pipeline builds the native application, produces a per-file CycloneDX 1.6 SBOM, packages the payload with Squirrel.Windows, and creates GitHub provenance and SBOM attestations for Setup.exe. It validates the Squirrel feed, full package, checksum, empty PE security directory (unsigned Setup.exe), and SBOM in a draft before publication and refuses to publish unless repository immutable releases are enabled. The last historical publish pipeline proof is hosted run 29877040307 completed with both Build BambuStudio and Publish Windows release succeeding and published the non-draft NSIS-era release md3-windows-v02.08.01.55-r37 (installer, SHA-256 checksum, CycloneDX SBOM). New releases ship Setup.exe, RELEASES, the full Squirrel package, any delta packages, the sidecar, and SBOM. When an org-side restriction began returning HTTP 403 on release creation with the workflow token, the publish step was switched to authenticate with the TOKEN_GITHUB owner PAT (commit fc7257366, falling back to the workflow token where the secret is absent); release r56 was published manually from run artifacts during that incident. GitHub attestations and checksums are not Authenticode signatures; configuring a trusted Windows signing identity remains external work. Local release checks are the evidence boundary for the current Squirrel migration; a cancelled or pending hosted run is not treated as green. See HANDOFF.md for the authoritative, current CI state.

Bambu Studio is based on PrusaSlicer by Prusa Research, which is from Slic3r by Alessandro Ranellucci and the RepRap community.

See this fork's wiki, feature documentation, roadmap, and handoff for the MD3 rewrite, verification status, and Windows release details. The original documentation remains in doc/.

What are Bambu Studio's main features?

Key features are:

  • Basic slicing features & GCode viewer
  • Multiple plates management
  • Remote control & monitoring
  • Explicit Home Assistant printer handover and short-lived local discovery
  • Auto-arrange objects
  • Auto-orient objects
  • Hybrid/Tree/Normal support types, Customized support
  • multi-material printing and rich painting tools
  • Upstream multi-platform source support; this fork accepts native Windows releases only
  • Global/Object/Part level slicing parameters

Other major features are:

  • Advanced cooling logic controlling fan speed and dynamic print speed
  • Auto brim according to mechanical analysis
  • Support arc path(G2/G3)
  • Support STEP format
  • Assembly & explosion view
  • Flushing transition-filament into infill/object during filament change

How to compile on Windows

For a local Release installer, double-click OneClickBuildInstaller.cmd. Automation and fresh checkouts can use the root build.bat and build-installer.bat entry points; /s, --silent, or SILENT=1 keeps either path non-interactive. build.bat leaves a runnable Release payload, while build-installer.bat produces the unsigned Squirrel.Windows Setup.exe, RELEASES feed, full package, any generated delta packages, SHA-256 sidecar, and CycloneDX SBOM through the same supported toolchain. Neither script launches the app or publishes a release. It detects and installs missing ordinary prerequisites, builds dependencies and Bambu Studio, stages the payload, and writes Squirrel artifacts under artifacts/windows/squirrel/ plus the CycloneDX SBOM, SHA-256 checksum, and detailed log under artifacts/windows/. See the one-click Windows build guide for clean, bootstrap-only, plan, and explicit post-build install modes.

Use the upstream Windows compile guide for a developer build. Non-developers who want a locally compiled build can instead use the installer's interactive Build from source mode, which bootstraps the toolchain and runs the same documented build path. The fork's release configuration is encoded in .github/workflows/build_bambu.yml and is orchestrated by .github/workflows/build_all.yml. The release workflow enables native C++ tests and packages the installed payload with Squirrel.Windows; see the Windows CI and supply-chain documentation before treating a local build as equivalent to a published artifact.

Report issue

You can add an issue to the github tracker if it isn't already present.

License

Bambu Studio is licensed under the GNU Affero General Public License, version 3. Bambu Studio is based on PrusaSlicer by PrusaResearch.

PrusaSlicer is licensed under the GNU Affero General Public License, version 3. PrusaSlicer is owned by Prusa Research. PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci.

Slic3r is licensed under the GNU Affero General Public License, version 3. Slic3r was created by Alessandro Ranellucci with the help of many other contributors.

The GNU Affero General Public License, version 3 ensures that if you use any part of this software in any way (even behind a web server), your software must be released under the same license.

The bambu networking plugin is based on non-free libraries. It is optional to the Bambu Studio and provides extended networking functionalities for users. By default, after installing Bambu Studio without the networking plugin, you can initiate printing through the SD card after slicing is completed.

About

PC Software for BambuLab and other 3D printers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages