Skip to main content

bambuuzle

PyPI version Python 3.10+ License: MIT Downloads

Extract and re-insert G-code from Bambu Lab .gcode.3mf files.

bambuuzle logo

What is this?

Bambu Lab printers use .gcode.3mf files — which are just ZIP archives containing G-code, metadata, thumbnails, and MD5 checksums. bambuuzle lets you:

  • Extract plate G-code for editing
  • Re-insert modified G-code (with automatic MD5 recomputation)
  • Create .gcode.3mf files from scratch
  • Programmatically transform G-code via the Python API

Zero dependencies — uses only Python stdlib (zipfile, hashlib, json).

Installation

pip install bambuuzle

CLI Usage

Extract G-code from a plate

# Extract plate 1 (default) → writes plate_1.gcode
bambuuzle get_plate my_print.gcode.3mf

# Extract plate 2 → writes plate_2.gcode
bambuuzle get_plate my_print.gcode.3mf --plate 2

Re-insert modified G-code

# Edit plate_1.gcode however you like, then:
bambuuzle put_plate my_print.gcode.3mf

# Write to a new file instead of overwriting
bambuuzle put_plate my_print.gcode.3mf --output modified.gcode.3mf

The MD5 checksum is automatically recomputed — no manual hash wrangling needed.

Python API

Read and modify

from bambuuzle import BambuFile

bf = BambuFile.open("my_print.gcode.3mf")

# Access plate gcode
plate = bf.plate(1)
print(f"Gcode length: {len(plate.gcode)} chars")

# Modify
plate.gcode = plate.gcode.replace("M104 S200", "M104 S210")

# Save (MD5 auto-recomputed)
bf.save("modified.gcode.3mf")

Create from scratch

from bambuuzle import BambuFile

bf = BambuFile()
bf.add_plate(gcode="G28\nG1 X100 Y100 F3000\nM84\n")
bf.save("new_print.gcode.3mf")

Transform helper

from bambuuzle.bambu_file import transform

def add_pause_at_layer(gcode: str) -> str:
    return gcode.replace(
        "; LAYER_CHANGE",
        "; LAYER_CHANGE\nM400\nM25 ; pause",
        1,  # only first occurrence
    )

transform("input.gcode.3mf", "output.gcode.3mf", add_pause_at_layer)

The .gcode.3mf format

A .gcode.3mf is a ZIP archive with this structure:

├── [Content_Types].xml
├── _rels/.rels
├── 3D/3dmodel.model
└── Metadata/
    ├── plate_1.gcode          ← The actual G-code
    ├── plate_1.gcode.md5      ← MD5 hex digest (must match gcode)
    ├── plate_1.json           ← Plate metadata
    ├── plate_1.png            ← Thumbnail
    └── ...

Key gotcha: if the MD5 doesn't match the G-code, Bambu Studio and the printer will reject the file. bambuuzle handles this automatically.

Development

git clone https://github.com/retospect/bambuuzle.git
cd bambuuzle
pip install -e ".[dev]"
pytest

License

MIT

Metadata

Release files for bambuuzle 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bambuuzle 0.1.0
File Size Uploaded Provenance
bambuuzle-0.1.0.tar.gz 44.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bambuuzle 0.1.0
File Interpreter ABI Platform
bambuuzle-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 53.6 kB

Release files / bambuuzle-0.1.0.tar.gz

Download URL bambuuzle-0.1.0.tar.gz
Size 44.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c455a8209189e520ce37e8cb11af70e1a2ccd71c1667263c3b874aa8b8b8e59e
BLAKE2b-256 checksum
How to use checksums
8eee10ff24faaec9fba8755b16b91c261129157ad778f6abc5b8ada4dc9aa242
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Release files / bambuuzle-0.1.0-py3-none-any.whl

Download URL bambuuzle-0.1.0-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd3a6c2beb3c6c0cba028bd06807f512645c5f72ee335654484c9f364e83406e
BLAKE2b-256 checksum
How to use checksums
ce6fd3517b102159dc31be392b037129f2dfcafef2dabda76f32c2a3f860b19b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Security for bambuuzle 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bambuuzle-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page