<link href="https://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />

Documentation

Release Notes


1.52.2 - Contact Page, API Docs & Under-the-Hood Fixes

A new Contact page explains how to reach us, and a new REST API & Authentication page covers how to call the 3D Print Log API and sign in with an API key.

Most of this release is behind the scenes. 3D Print Log now runs on the latest Angular patch release, a large internal refactor brings the app in line with current Angular patterns, and AI assistants and search engines can now find the documentation and the MCP server more easily.

Full List of Changes:

  • Contact page - A new Contact page, with links to it and to the other trust pages from the footer and documentation. (PR #232)
  • REST API documentation - A new REST API & Authentication page covers the API and how to authenticate. (PR #219)
  • Settings on phones - The filament display unit toggles in Settings now stack on narrow screens instead of running off the edge. (PR #239)
  • Documentation loads faster - Documentation pages are now fully prerendered, so their content appears before the app finishes loading. (PR #238)
  • Real "not found" pages - Unknown addresses now return a proper 404 page instead of an empty app. (PR #218)
  • Documentation as Markdown - Every documentation page is also published as Markdown for AI assistants and other tools. (PR #229)
  • Discovery for AI agents - The site now publishes standard discovery files for the API, the MCP server, the docs MCP endpoint and an agent skill. (PR #220, PR #234, PR #235, PR #236)
  • Search engine improvements - Richer structured data for search results (PR #231), and the sitemap now tells search engines when pages and public prints last changed (PR #233).
  • Reliability fixes - Fixed background subscriptions in Settings and print comments that were not cleaned up when you left the page. (PR #240)
  • Dependency updates - Angular 21.2.25 and security fixes for third-party packages, including a safer duration parser. (PR #242, PR #243)
  • Modernized internals - Components now use Angular's signal inputs, outputs and queries, host metadata and built-in template control flow. (PR #241, PR #244, PR #245)

1.52.1 - Email Preferences

Getting ready for email. 3D Print Log will soon send a few emails about your prints (onboarding tips, a monthly recap, and a heads-up when a printer goes quiet). None are going out yet, but you can choose which ones you want ahead of time in the new Email section of Settings. Every email will also have a link to change your preferences or unsubscribe in one click.

Full List of Changes:

  • Email settings - A new Email section in Settings shows the address we send to and lets you turn each kind of email on or off, or all of them at once. (PR #193)
  • One-time email notice - A short banner lets you know about the upcoming emails, with a shortcut to your email settings. (PR #193)
  • Manage emails without signing in - Links in an email open a page where you can change your preferences or unsubscribe without signing in. (PR #193)
  • Privacy - Email addresses and email links are kept out of usage analytics, and the privacy policy now covers email. (PR #193)
  • Email artwork - Logos and achievement badge images for the upcoming emails. (PR #206)
  • New documentation - A new Email Notifications page covers what we send, when, and how to turn it off. (PR #193)

1.52.0 - Achievements & Printer Photos

Achievements have arrived. Logging prints, keeping a streak going, trying new materials and connecting your slicer now earn badges, each a little shield with tiers running from Bronze PLA up to Glow-in-the-Dark. Big moments get a celebration card and smaller ones a quick toast, and the new Achievements page shows your whole collection with progress toward the next tier and how rare each badge is. Some badges stay hidden until you earn them. Your prints list suggests the next badge within reach, and you can feature your badges on your public profile. If celebrations aren't your thing, set them to Quiet or Off in Settings. See the Achievements documentation for the full details.

Printer photos make it easy to tell your machines apart at a glance. Add photos to any printer, star the one you want as its default, and that photo appears next to the printer's name everywhere it shows up: the print list and cards, print details, the printer picker, maintenance and analytics. Printer photos are private and never appear on a print's public page. See Printer photos for how to add them.

Uploading G-code from a slicer we don't recognize by name also got better. Forks like Snapmaker Orca, Elegoo Slicer and SuperSlicer are now matched to the closest supported slicer, so their settings, print time and per-slot filament usage are read directly instead of falling back to estimating from the toolpath.

Full List of Changes:

  • Achievements - Earn badges for printing milestones, streaks, materials and more, with tiers from Bronze PLA to Glow-in-the-Dark. Streaks count days in your own time zone. (PR #189, API PR #115)
  • Achievement celebrations - A celebration card for big moments and a toast for everything else, shown as soon as the badge is earned and only once even with several tabs open. Choose Full, Quiet (no confetti or motion) or Off in Settings. (PR #189)
  • Achievements page - Your collection grouped by category, with progress bars, rarity and a shareable detail view for each badge. (PR #189)
  • Badges on public profiles - Feature your badges on your public profile, and visitors can browse your full collection. Turn it off in Settings. (PR #189, API PR #115)
  • Next achievement hint - The prints list suggests the next badge within reach; dismiss it if you'd rather not see it. (PR #189)
  • Achievement push notifications - A new "Achievement earned" toggle in the mobile app's push notification settings. (PR #189)
  • Fixed notification links - Notifications that link to a page with options (such as a specific badge) now open correctly from the bell and the notifications page. (PR #189)
  • Fixed notification polling - Logging out and back in no longer stacks duplicate notification checks, and a single failed check no longer stops notifications for the rest of the session. (PR #189)
  • Printer photos - Add photos to your printers and pick a default. Files are checked for size and type before uploading, and a failed upload can be retried without creating a duplicate printer. (PR #176, API PR #114)
  • Printer photos everywhere - A printer's default photo appears beside its name on the print list, print cards, grouped view, print details, the printer picker, maintenance and analytics. (PR #176)
  • Smarter slicer detection - G-code from an unrecognized slicer is matched to the closest supported one (Snapmaker Orca, Elegoo, SuperSlicer and other forks), with a note telling you which it used. (PR #183)
  • Per-slot filament usage - OrcaSlicer and PrusaSlicer MMU/XL uploads now log usage for each filament slot. Bambu Studio files are read directly without the toolpath estimate dialog. (PR #183)
  • Cura and Anycubic parsing fixes - Cura files without a settings block no longer fail to upload, and Nylon now uses the correct density for weight estimates. (PR #183)
  • Redesigned G-code analysis dialog - When a file has to be estimated from its toolpath, a clearer dialog shows the steps, a single progress bar and per-extruder filament rows. (PR #183)
  • New documentation - A new Achievements page, a Printer photos section, and Create a print from a G-code file on the Prints page.

1.51.0 - Slicer Uploader 1.2 & Setup Wizard

The Slic3r Post-Processing Uploader (the small program that logs a print every time you export G-code from OrcaSlicer, PrusaSlicer or Bambu Studio) has a big new release, and getting it working no longer means hunting for the right settings field in your slicer. Version 1.2.0 comes with a setup wizard: double-click the uploader on Windows (or run it with no arguments on macOS and Linux), answer two questions, and it adds itself to every process profile OrcaSlicer, Snapmaker Orca or Anycubic Slicer Next has. It never edits the slicer's own profiles; instead you get a matching "- 3DPrintLog" user preset for each one, so you pick the logged version from the Process dropdown and slice exactly as before. Run it again after adding a printer, after moving the file, or to change the note template, and uninstall takes it all back out.

The uploader itself learned a lot since 1.1: it reads PrusaSlicer's binary .bgcode files (MK4, MINI+, XL, CORE One), sends one material entry per filament slot on multi-color prints (with the slot, color and material spelled out so you can match each to the right spool), picks the sharpest thumbnail the slicer embedded, uses the filament's real density for weight estimates, explains what went wrong in plain language when it cannot upload, and tells you when a newer version is available.

The uploader documentation has been rewritten around the wizard as a five-step guide with screenshots from OrcaSlicer, plus the manual setup for PrusaSlicer and Bambu Studio, the options that control what gets logged, and a troubleshooting section.

Full List of Changes:

  • Setup wizard for OrcaSlicer, Snapmaker Orca and Anycubic Slicer Next - Run the uploader with no arguments and it installs itself into every process profile as a "- 3DPrintLog" user preset. Re-running updates paths and flags; uninstall removes only what it created; --dry-run previews either. (Uploader PR #64)
  • PrusaSlicer binary G-code - Printers that require .bgcode are now supported; metadata, settings and the thumbnail are read straight from the binary container. (Uploader PR #54)
  • PrusaSlicer 3.0 - The uploader works with the 3.0 alpha's G-code unchanged. (Uploader PR #27)
  • Multi-color prints - Each filament slot becomes its own material entry, labelled with the slot number, color and material, for OrcaSlicer, Bambu Studio, Anycubic Slicer Next and PrusaSlicer MMU/XL exports. (Uploader PR #26, Uploader PR #53)
  • Sharper print images - The highest-resolution thumbnail up to 1280x720 embedded in the G-code is used as the print image. (Uploader PR #22)
  • Better weight estimates - Filament weight uses the density from the slicer profile rather than a fixed guess. (Uploader PR #47)
  • Readable console output - A normal run shows a short checklist of what it did; a failure explains what went wrong and what to do, and keeps the window open long enough to read it. Unknown flags are reported instead of ignored. (Uploader PR #28, Uploader PR #45)
  • Update notifications - Each run checks for a newer release and prints a link when one exists. (Uploader PR #63)
  • Faster on large files - Only the head and tail of the G-code, where slicers write their settings, are read. (Uploader PR #25)
  • Dry-run mode - --dry-run renders the note and shows what would be uploaded without sending anything, which is the quickest way to check a custom template. (Uploader PR #56)
  • Fixed print times over 24 hours - Multi-day prints no longer lose their days when the time is parsed. (Uploader PR #44)
  • Fixed a crash on G-code without filament settings - Files that omit the filament section are handled instead of failing. (Uploader PR #24)
  • Rewritten uploader documentation - Send prints from your slicer now walks through download, adding printers, the wizard, picking a preset and exporting, with screenshots, plus manual setup, options and troubleshooting.

1.50.0 - Project Dates & A New Look

Project start and finish dates now appear on every project. The dates are derived from the prints in the project, so an existing project already has them without you touching anything, and the project edit form lets you pin either end by hand when the prints do not tell the whole story (a project you started designing weeks before the first test print, or one you consider finished even though you printed a spare part later). This one came in as a user suggestion, so thank you for sending it in. See Projects for how the automatic dates are derived and when a manual date takes over.

The home page has been rebuilt around the product itself. Real screenshots of the app are visible right away instead of a wall of text, the feature sections are laid out to be read rather than scanned, and the whole page now follows your light or dark theme properly.

The documentation got the larger rebuild. Every page is now written in Markdown and rendered through a shared design system, with a contents rail that follows you as you scroll, previous and next links at the bottom of each page, and search across the whole site. Pages are grouped by what you are trying to do, the material documentation was split so the field reference lives on its own page, and there is a proper start-to-finish tutorial for logging your first print. Screenshots throughout are captured from the real app and can carry numbered callouts that point at what the text is describing. Every old documentation link still works.

Full List of Changes:

  • Project start and finish dates - Projects now show a start and finish date, derived from the prints they contain. (PR #137, API PR #106)
  • Manual date overrides - The project edit form lets you pin the start date, the finish date, or both, and an unrelated edit will not silently clear a date you pinned. (PR #137, API PR #106)
  • Dates are no longer shifted by your time zone - A date you type is saved as the day you typed, rather than landing on the previous day for anyone west of UTC. (PR #137)
  • Redesigned home page - The print list, materials and analytics screens are shown above the fold, creating a free account is a single click, and the page is themed properly in both light and dark mode. (PR #166)
  • Faster, lighter home page images - The home page screenshots are now generated automatically from the real app, and weigh less than the old ones despite there being more of them. (PR #65, PR #166)
  • Search across the documentation - A search box on /docs finds pages and sections as you type. (PR #160)
  • Redesigned documentation pages - Docs pages share one visual design, with a per-page contents rail and previous/next links between related pages. (PR #161)
  • The contents rail follows you - The list of sections on a docs page stays on screen as you scroll and highlights the section you are reading. (PR #167)
  • Documentation reorganized - Pages are grouped by what you are trying to do, the material documentation is split into a guide and a field reference, and /docs/log-your-first-print walks you through logging a print from start to finish. Old links and bookmarks continue to work. (PR #169)
  • Screenshots in the documentation - Doc figures are captured from the real app, so they stay current, and can carry numbered callouts that point at the part of the screen the text is talking about. (PR #162, PR #170)
  • Documentation written in Markdown - Every docs page is now a Markdown file, which makes pages faster to write, correct and keep up to date. (PR #150, PR #159)
  • Snappier print list search - Typing in the print list search box no longer sends duplicate requests or leaves the loading bar spinning after the results have arrived. (PR #171)

1.49.1 - Push Notification Fixes

Follow-up fixes to the push notifications that shipped in 1.49.0. Tapping a notification now opens the print it is about, instead of just opening the app to whatever page you were last on. Turning notifications on from Settings works on the first tap (it previously took two, even though the first one had already been granted). Notification timestamps are also correct now: the notification tray no longer shows a print as finishing years ago, and times in the app are no longer shifted by your time zone.

Full List of Changes:

  • Tapping a notification opens the print - a tapped print notification now navigates to that print, whether the app was closed or already open, and still does so when the device is offline (PR #154, Android app PR #14)
  • Enabling notifications works on the first tap - Settings no longer reports notifications as off after you have just allowed them (Android app PR #14)
  • Notifications are offered while a print is running - opening one of your own in-progress prints now offers to enable notifications, rather than leaving Settings as the only way to find the option (PR #154)
  • Notification timestamps are correct - the notification tray no longer shows a just-finished print as years old, and notification times in the app are no longer offset by your time zone (API PR #108)

1.49.0 - Push Notifications

Push notifications have arrived. If you send print events to 3D Print Log from OctoPrint or Klipper, your phone can now tell you the moment a print finishes or fails, so you no longer have to keep opening the app to check on a long job. A new Push notifications section in Settings lets you turn each notification on or off, and the app asks for permission in context (when notifications would actually be useful) rather than on the very first launch. The updated Android app that receives these notifications is rolling out to users soon.

Printing QR labels got a lot less fiddly. Paper size, label size, columns, and rows used to be four unrelated choices, and picking a combination that did not fit produced an overflowing preview and a wasted sheet. Columns and rows are now worked out from the paper and label size for you, the manual controls moved behind an Advanced layout toggle, and whatever layout you pick is remembered the next time you open the dialog.

Documentation pages now end with a Was this page helpful? prompt. A thumbs down opens a box to say what you were actually looking for, which goes straight into deciding what gets written and rewritten next.

Full List of Changes:

  • Push notifications for finished and failed prints - Print completed and print failed events from your OctoPrint or Klipper webhooks can now be delivered to your phone as push notifications. (PR #149)
  • Push notification settings - A Push notifications section in Settings turns Print completed and Print failed on or off individually, and offers an Enable notifications button when the device permission has not been granted yet. (PR #149)
  • Permission asked in context - The app explains why notifications are useful and asks for the device permission at a relevant moment instead of at launch, so a hasty "no" does not permanently switch them off. (PR #149)
  • QR label sheets fit automatically - Columns and rows are derived from the paper and label size, so the preview and the printed sheet always match. Manual control is still available behind an Advanced layout toggle, clamped to what actually fits. (PR #135)
  • QR label layout is remembered - Your paper size, label size, and layout choices carry over to the next time you open the label dialog. (PR #135)
  • More reliable label printing - A blocked popup now shows a readable warning instead of a browser alert, and the print window stays open until printing finishes rather than closing early and cancelling the job in some browsers. (PR #135)
  • Page feedback on documentation - Every docs page now ends with a "Was this page helpful?" prompt, with a box to explain what you were looking for when a page falls short. (PR #148)
  • Privacy policy updated - The privacy policy now describes the analytics that were already in use, and covers the free text you can send through the new page feedback prompt. (PR #148)
  • Fixed remaining amounts after a QR scan - Picking a material by scanning its QR code showed 0g / 0m / 0ml remaining on the print, while picking the same spool from the list showed the real numbers. Both paths now report the same values. (PR #134)
  • Project housekeeping - Website and build dependencies were updated, bringing security fixes and performance improvements. (PR #108, PR #111, PR #112, PR #113, PR #114, PR #115)

1.48.1 - Camera Photos on Mobile

A fix for the mobile app. Adding a photo to a material only ever opened the gallery, with no way to take a new picture. Both Add Photo and the + tile on the photo carousel now offer the camera, matching the Upload Picture button on a print. The + tile on a print's photo carousel offers the camera now too.

Full List of Changes:

  • Take a photo from the camera - In the mobile app, the material Add Photo button and the + tile on both the material and print photo carousels can now open the camera instead of only the gallery. (PR #133)

1.48.0 - Spool Photos

Materials can now have photos. The new Photos panel lets you add pictures of the actual spool, reorder them, and star one as the default. That default photo then shows as a thumbnail beside the material everywhere it is listed, in the table and in the mobile cards, so you can spot the right roll in a long list without reading every name.

The rest of the release is fixes. Slicer files that are missing or have invalid filament measurements no longer record a confident estimate of 0mg; the amount is simply left empty for you to fill in. The navigation bar has been tidied up on phones: the links sit to the left, the toolbar keeps a fixed height instead of growing, the brand no longer shrinks, the Pro button stays in the toolbar, and "About" no longer appears twice.

Full List of Changes:

  • Spool photos - A Photos panel on the material detail page lets you add, reorder, delete, and set a default picture of the spool. (PR #126)
  • Photo thumbnails in the material list - The default photo shows beside each material in both the table and the mobile cards. (PR #126)
  • No more 0mg filament estimates - When a sliced file is missing filament diameter or length, or reports an invalid value, the usage estimate is left empty instead of recorded as zero. (PR #122)
  • Mobile navigation bar layout - Links are left-justified, the toolbar has a fixed height, the brand no longer shrinks, and the Pro button stays in the toolbar. (PR #129)
  • Duplicate "About" link - "About" no longer renders twice in the mobile menu. (PR #123)
  • Release notes on GitHub - Each release published on GitHub is now generated from this page, so the notes there match the ones here. (PR #106, PR #118)
  • Project housekeeping - Dependency updates are now automated, build workflow permissions were tightened, and the README points at GitHub Discussions for questions and ideas. (PR #107, PR #119)

1.47.0 - Material Remaining & More Bulk Actions

Saved materials now tell you what is left on the spool. Opening a material shows a Remaining card beside the form with a bar, the reading in your preferred unit (975 g of 1,000 g left), and the remaining length, volume, total used and the number of prints it has been through. Below it, a "Prints using this material" panel lists the ten most recent prints that consumed it, each with the amount it used, and links into the filtered print list when there are more. Edit an adjustment or the nominal weight and the card previews the result before you save it.

Bulk editing on the print list has grown past status and delete. Select some prints and the Actions menu can now add them all to a project (typing a new name creates that project once, not once per print), change their visibility, move them to a different printer, or set their permissions. The actions are sent in batches of twenty-five instead of one request per print, so a large selection finishes in a fraction of the time, a single failure never stops the rest, and anything that did fail stays selected so you can retry it. On a phone, where the table and its checkboxes do not render, long-press a print card to start selecting.

The rest of the release is fixes and groundwork. Switching between All Prints and Grouped by Project no longer flashes the mobile card list on the way, and is roughly twice as fast, and displaying two start-date columns together no longer paints a page of blank rows. Saving a default filament price no longer overwrites your default diameter, a deleted print comment disappears right away instead of waiting for a reload, and a failed checkout no longer leaves the Subscribe buttons stuck. Prints, Materials and Printers now load in the background just after the app starts (skipped on a slow or metered connection), so moving between them is instant.

The two headline features here were both asked for by users. If there is something you would like 3D Print Log to do, send in feedback and help shape what comes next.

Full List of Changes:

  • Remaining material - The material detail page now shows how much is left on the spool: a bar, the reading in your preferred unit, and the remaining length, volume, total used and print count. (PR #91)
  • Prints that used a material - A panel beside the material form lists the ten most recent prints that consumed it with the amount each one used, and links to the full filtered list when there are more. (PR #91)
  • Live remaining preview - Editing an adjustment or the nominal weight previews the new remaining figure before you save, and says so plainly when a change (such as a new density or diameter) cannot be previewed reliably. (PR #91)
  • Bulk add to project - Add a whole selection of prints to a project at once. Typing a new name creates that project a single time, rather than one copy per print. (PR #90)
  • Bulk visibility, printer and permissions - Three more bulk actions on the print list, alongside the existing set status and delete. (PR #90)
  • One Actions menu - The bulk actions now sit behind a single "Actions" button that carries the selected count, so the toolbar no longer pushes Clear off screen on a narrow window. (PR #90)
  • Faster bulk actions - Bulk edits are sent in batches of twenty-five instead of one request per print, and prints that fail stay selected for a one-click retry. (PR #90)
  • Long-press to multi-select on mobile - Press and hold a print card to enter multi-select, which is the only way into bulk actions at a width where the table does not render. (PR #103)
  • Clearer bulk editing - The bulk project dialog explains itself better, the action menus stay pinned, and selecting a row is now separate from opening it. (PR #103)
  • No more flash when switching views - Moving between Grouped by Project and All Prints no longer shows the mobile card list for a moment on desktop, and the switch is about twice as fast because only one list is built. (PR #103)
  • Fixed blank rows with two start-date columns - Showing Start Date, Start Time or Start Date/Time together used to render a page of empty cells until an unrelated update filled them in. (PR #103)
  • Fixed "Save as Default Filament Price" - Saving a default price wrote into your default diameter setting instead, and failed outright if you had no diameter default. (PR #102)
  • Deleted comments disappear immediately - A deleted print comment used to stay on screen until the page was reloaded. (PR #102)
  • Fixed stuck Subscribe buttons - A failed checkout left both Subscribe buttons disabled and spinning until you reloaded the page. (PR #102)
  • Faster navigation to the main sections - Prints, Materials and Printers load in the background shortly after the app starts, so opening them is instant. Preloading is skipped entirely on a slow or data-saving connection. (PR #96)
  • Stronger security headers - A Content Security Policy, Permissions-Policy and framing protections now ship with the site. (PR #95)
  • Stricter type checking - Angular's strict template checking is on, and the core of the app is now compiled with strict null checks, which catches a class of bug before it can reach you. (PR #97, PR #101)
  • End-to-end tests run on every change - The browser test suite now runs automatically, and nine previously untested areas (settings, API keys, printer maintenance, print comments, public profiles, G-code import, notifications, subscriptions and the feed) are covered. (PR #87, PR #102)