Skip to content

Releases: Animesh-Varma/BambuScribe

BambuScribe v2.0.0

Choose a tag to compare

@Animesh-Varma Animesh-Varma released this 08 Oct 15:25

BambuScribe v2.0.0

BambuScribe v2.0.0 transforms the project into a dual-mode platform. You can now run the entire plotting suite locally with your printer or completely serverless inside your browser via WebAssembly (Pyodide). This release also adds six new vector algorithms, a 6-stage path optimization pipeline, dynamic bounding box clipping, and stricter safety guardrails.

Dual-Mode & Serverless Web

  • Serverless Web Engine: Run vector generation and G-code compilation directly in your browser at animesh-varma.github.io/BambuScribe, no Python installation or local server required.
  • Auto-Detection & Web Locks: Automatically detects if you are running locally or on static hosting (like GitHub Pages). Web Mode safely locks physical hardware controls in favor of static canvas dimensions and manual contact height inputs.

New Vector Algorithms

  • Centerline / Skeleton: Thins handwriting, signatures, and line art to 1-pixel spines to eliminate double-outlining.
  • Archimedean Spiral: Center-outward continuous spiral with tone-modulated sine waves for plotting with zero pen lifts.
  • Serpentine Squiggle: Continuous horizontal scanlines with tone-modulated wave amplitude.
  • Flow Field Engraving: Directional streamlines following edge tangent fields for a classic engraved look.
  • Blue-Noise Stippling & TSP Tour: Tone-weighted dot sampling, with an optional continuous single-line Traveling Salesperson tour.
  • Topographic Contours: Multi-level elevation slices across image brightness levels.

Path Optimization & Dynamic Clipping

  • 6-Stage Optimizer: Uses Ramer–Douglas–Peucker (RDP) decimation, travel distance sorting, and gap stitching to eliminate jerky machine moves and cut plotting times.
  • Pen Width Simulation: Accurately renders physical stroke thickness on both the 2D canvas and 3D visualizer.
  • Smart Bounding Box Clipping: Slices paths cleanly at canvas boundaries instead of throwing errors. Out-of-bounds segments are highlighted in red on the 3D visualizer.

Standalone G-Code & Hardware Safety

  • Direct G-Code Export: Download ready-to-run .gcode files equipped with a safe 4-step sequence (Pre-home pause → Auto-home → Pen-mount pause → Plot).
  • Strict Homing Enforcement: Physical controls and direct plots strictly require homing first (G28) to prevent toolhead crashes.

Codebase & UI

  • Modular Architecture: Refactored into clean backend Python packages and ES6 frontend modules.
  • Material 3 UI: Fixed dark mode color inversions, added fast-reveal tooltips, and improved keyboard accessibility.

Known Limitations

  • Skew Calibration: Angled paper boundaries cannot yet be compensated for via affine transforms.
  • Camera Utilization: The live camera feed remains for visual monitoring only (no automated alignment yet).

What's Changed

  • feat(core): introduce serverless web mode, expanded vector suite, and path optimization by @Animesh-Varma in #4

Full Changelog: v1.1.1...v2.0.0

BambuScribe v1.1.1

Choose a tag to compare

@Animesh-Varma Animesh-Varma released this 28 Jul 17:23
1f80c4a

BambuScribe v1.1.1

This patch release focuses on improving hardware safety, fixing the image scaling unpredictability from our previous release, and enhancing cross-session state reliability.

Hardware & State Reliability

  • Fixed: Retained Homing State: Halting operations no longer causes the printer to lose its homing state. The engine now uses M410 instead of M18 for safer stops.
  • State Persistence: Introduced cross-session state persistence that reliably remembers your parameters between app reloads and safely clears upon a server restart.
  • Busy Guards: Added strict safety checks to prevent overlapping movement commands from being sent while an active plot is running.

Image Processing & Interface

  • Fixed: Image Scaling: Resolves the v1.1.0 Camera & Scaling limitation. Images now scale correctly and predictably around the offset center by inverting the PPM (pixels per millimeter) logic.
  • Resolved: Blank Plot Error: Fixed a false positive error that would trigger when handling blank plots by explicitly verifying path data.
  • UI Updates: Added a dedicated "Clear Image" button and ensured the 3D visualizer synchronizes immediately upon loading an image.

Documentation

  • Embedded the v1.1.0 Demo Video into the README.md and updated version badges.

Known Limitations (Carried Over)

  • Skew: The paths cannot yet be skewed to match an angled bounding box.
  • Camera Centering: The live camera remains monitoring-only (no computer vision centering).

Coming Soon

  • Auditory alerts for finished plots and manual pen swaps.
  • An optimized open-source 3D-printable screw mount to eliminate physical nozzle offset.
  • Better/optimized algorithms for image plotting.

What's Changed

  • feat(core): improve hardware safety, state persistence, and image processing by @Animesh-Varma in #2

Full Changelog: v1.1.0...v1.1.1

BambuScribe v1.1.0

Choose a tag to compare

@Animesh-Varma Animesh-Varma released this 12 Jul 18:10
8cb3c9c

BambuScribe v1.1.0

This minor release focuses on resolving the two biggest bottlenecks from our initial v1.0.0 launch: the host-device sleep dependency and slow plot times.

Resolved Limitations

  • Fixed: Host-Sleep Disconnects: Resolves the v1.0.0 Execution Warning. You no longer need to keep your PC awake to stream plots. A new background FTPS client (port 990) packages your G-code into a Bambu-compliant .3mf archive and autonomously uploads it directly to the printer's SD card.
  • Fixed: Slow Print Speeds: Resolves the v1.0.0 Print Speed limitation. Toolhead kinematics have been pushed to their firmware limits. Z-axis feedrate is maximized to 1800 mm/min, arbitrary G4 dwell pauses are removed, and XY travel moves now bind to your selected plotting speed for faster stroke repositioning.

Interface & Stability

  • Workflow Choice: A new UI selector lets you toggle between legacy Wi-Fi streaming and the new autonomous SD pipeline.
  • Live Monitoring: The dashboard now dynamically polls real-time physical print progress (mc_percent) and accurate states (Printing SD, Streaming, Idle).

Known Limitations (Carried Over)

  • Coordinate Recovery & Skew: The engine lacks mid-plot auto-homing recovery, and paths cannot yet be skewed to match an angled bounding box.
  • Camera & Scaling: The live camera remains monitoring-only (no computer vision centering), and image scale adjustment is still slightly unpredictable.

Coming Soon

  • Auditory alerts for finished plots and manual pen swaps.
  • An optimized open-source 3D-printable screw mount to eliminate physical nozzle offset.
  • Better/optimized algorithms for image plotting.

What's Changed

  • feat(core): implement autonomous SD plotting and optimize kinematics by @Animesh-Varma in #1

Full Changelog: v1.0.0...v1.1.0

BambuScribe v1.0.0 - Initial Release

Choose a tag to compare

@Animesh-Varma Animesh-Varma released this 02 Jul 19:26

BambuScribe v1.0.0

This is the inaugural v1.0.0 release of BambuScribe, an open-source suite engineered to transform Bambu Lab 3D printers into precision 2D pen plotters. This release establishes the core MQTT streaming pipeline, the internal image and typography processing engines, and a responsive web-based control dashboard.

Important: Execution Warning
Because BambuScribe actively streams G-code commands over your local network in real-time, the host device (your PC/laptop) MUST remain awake and connected to Wi-Fi for the entire duration of the plot. If the host device goes to sleep, the data stream will sever, and the printer will halt mid-operation.

Core Pipeline & Hardware Safety

  • Direct MQTT Streaming: Bypasses slicer software and SD cards entirely. The software authenticates with the printer's internal MQTT broker (LAN Only Mode) to stream raw G-code chunks directly over the local network.
  • Hardware Preservation (Cold-Plotting): Engineered specifically for plotter safety. The hotend remains completely unheated, eliminating fire hazards against paper, and the extruder gears are disabled to prevent unnecessary hardware wear.
  • Custom Chunking Protocol: Toolpaths are grouped into timed chunks and fed sequentially into the printer's internal buffer, tracking acknowledgments to prevent buffer overflow.
  • Device Support: Officially tested and supported on the Bambu Lab A1 Mini, with Beta support for the standard Bambu Lab A1.

Processing Engines

  • Native Text Engine: Integrates Hershey Vector Fonts to generate pure single-line text paths. Supports auto-wrapping, dynamic scaling, and both standard and cursive typography styles.
  • Advanced Image Processing: Utilizes an internal OpenCV and Pillow engine to convert standard images into plotter-safe G-code. Supports sophisticated styling algorithms including variable-density Crosshatching, TSP Stippling, and Canny Edge line art.

Interface & Virtual Canvas

  • Interactive 3D Visualizer: Features a built-in Three.js digital twin of the printer's build volume, allowing users to preview exact toolhead movements and ink placement before initiating a print.
  • Virtual Bounding Boxes: Replaces static coordinates with a dynamic canvas. Users manually jog the printhead to their paper's four corners to define a bounding box. The software uses the Z-height of the first recorded point as the global reference, safely accommodating various paper and pen thicknesses without nozzle strikes.
  • Live Camera Feed: Injects the raw Bambu Lab JPEG stream directly into the UI dashboard for remote monitoring.

Known Limitations (Read README for more)

  • Print Speed: Current plot times are slow. Every MQTT packet is individually validated in real-time to ensure spatial accuracy and prevent buffer overflow.
  • Camera Utilization: The live camera feed is currently for monitoring only and does not yet drive computer-vision calibration or centering.
  • Coordinate Recovery: The engine lacks auto-homing recovery. If the printer skips steps or detects a hardware discrepancy, it cannot dynamically recover its coordinates mid-plot.
  • Skew Calibration: Text and images are currently mapped to a perfect rectangle; the engine does not skew paths to match an angled physical bounding box.
  • Image Scale Change: Changing the scale of images is a little botched right now, will be improved by the next version.

Coming Soon (Read README for more)

  • Audio Cues & Sound Support: Implementing auditory alerts and system pings for finished plots, manual pen swaps, or hardware boundary errors.
  • Stream to Handoff: Re-engineering the MQTT pipeline to batch-transfer the entire file to the printer's cache, allowing the host device to safely disconnect.
  • Custom Hardware Mount: Release of an optimized, open-source 3D-printable screw mount to center the pen and eliminate the physical nozzle offset.