An accessible slicer for 3D printing, built for blind and low-vision makers: every setting as labelled fields, spoken slice reports, direct send and printer control.
See the codeAn accessible slicer for 3D printing, built for blind and low-vision makers and friendly for everyone.
AccessSlice lets you prepare, slice and send 3D prints with a screen reader, from start to finish. Every setting is a labelled field, every result is spoken, and the printer can be followed and controlled from ordinary pages instead of a touchscreen.
It is free, open source, and made by one person.
Mainstream slicers such as Bambu Studio, PrusaSlicer and Creality Print draw their own screens, and screen readers cannot use most of them. AccessSlice does not replace the slicer. It replaces the screens:
Nothing is hidden behind a picture. The 3D view of the plate and the sliced preview are there for sighted helpers, and every fact in them is also on the page in words.
These printers have been used with AccessSlice for real prints, from a new job to the finished part:
These use the same slicer and talk to the printer the same way as a tested printer, so they should work. Nobody has tried them yet. If you do, please report how it went (see "Reporting a problem or a new printer").
The details and sources are in docs/printer-compatibility.md.
AccessSlice never needs the internet.
AccessSlice-Setup-<version>.exe
(for example AccessSlice-Setup-1.0.1.exe).Good to know:
The first time AccessSlice starts, a setup wizard takes you through everything it needs, one step per page. Each page says exactly what to do and ends with a button for the next step. It takes about ten minutes, most of it in the slicer's own installer.
The wizard can be run again at any time - for a second printer, for example - from Help and tour or from Settings.
Some slicers' own first-start screens (signing in to Bambu Studio, for example) are hard to use with a screen reader. If you get stuck there, this is the one time a sighted helper is worth asking for. It is needed once; AccessSlice does the rest from then on.
Start a new print job on the Home page. Choose the printer and give the path of your model file (an STL, STEP or OBJ). AccessSlice builds the project itself, on the settings of your newest saved project for that printer, and opens it. A large model can take a while; the building page tells you the stage and the time every 15 seconds.
Creality printers differ in this one step only: Creality Print's engine cannot turn a model file into a project, so AccessSlice opens Creality Print for you. Import the model with Ctrl+I, save the project with Ctrl+Shift+S, and AccessSlice opens it the moment it is saved. Everything after that - settings, slicing and sending to the printer - happens in AccessSlice, exactly as for the other brands.
Or Open a project file you saved earlier. Your projects folder is listed newest first.
Edit on the tabs: Quality, Strength, Support, Speed, Adhesion, Others, Filaments, Printer and presets, Placement, All settings and Backups. Each tab shows the settings that matter most in plain language, then every other setting on that topic. Changes are staged first; the Review page lists them with old and new values, and Save writes them all, with a backup of the file you started from.
Slice now, on the Slice and send page. Warnings come first, in words. The slice report gives the print time, the filament used, and anything the engine complained about. Preview describes the print layer by layer.
Send: straight to a Prusa or Creality printer over your network, to a USB drive with one button, or through the slicer's own send window for Bambu Lab printers. Before a print starts, AccessSlice asks you to check with your hands that the build plate is empty.
Print. For Prusa and Creality printers, the Printer status page reads the progress aloud every half minute and announces the end.
Help and tour in the top navigation explains every page and tab, and can be read at any time.
AccessSlice is free and made by one person. A week after you first start it, a small pop-up asks whether you would like to buy me a coffee, and after that it asks about once a month. Buy me a coffee opens buymeacoffee.com/accessible3d in your browser; Not now (or Escape) closes it until next month. There is also a quiet link on the Home page for any time.
Please use the Issues page of this project on GitHub: https://github.com/Accessible3D-Edis/AccessSlice/issues
Helpful things to include:
Tried a printer from the "not tested yet" list? Please report it either way - it working is as useful to hear as it failing. Printers move to the tested list as they are confirmed.
AccessSlice is Python 3 using only the standard library, with server-rendered HTML pages. The installed program adds pywebview for its window.
With Python 3.13 installed:
python app\accessslice.py
That opens AccessSlice in your default browser with a console - the
development mode. The installed program's entry point is
app\accessslice_window.py (its own window; needs
pip install pywebview).
python -m unittest discover -s tests -v
728 checks, standard library only, fully offline and hermetic: they
never touch your real configuration or your slicers' settings, and
never launch a real program. A full run takes about half an hour.
tests/README.md describes what each file covers.
pip install pyinstaller pywebview
python packaging\build.py
That produces the one-folder bundle packaging\dist\AccessSlice\
and, with Inno Setup 6 installed, the installer
packaging\output\AccessSlice-Setup-<version>.exe. The version number
lives in app\version.py. After a build,
python -m unittest tests.test_packaged -v drives the built program
itself. Code signing is one configuration file away; see
packaging\README.md.
app/ - the program:
accessslice.py - the development entry point (browser tab).accessslice_window.py, appwindow.py - the installed program's
entry point: its own window, the server stopped when it closes.server.py - the local web server and routing.webui.py - every screen as accessible server-rendered HTML.wizard.py - the setup wizard's printers and steps.backends/ - one module per slicer (Bambu Studio, Creality
Print, OrcaSlicer, Anycubic Slicer Next, PrusaSlicer) behind one
interface.slicer_project.py - the open project, staged changes, safe
saving.settings_catalog.py - plain-language knowledge about settings.profiles.py, prusa_profiles.py, creality_profiles.py - the
slicers' own preset libraries.engine_driver.py, build_job.py, newjob.py,
prusa_newjob.py - slicing and building new projects with the
slicers' engines.creality_lan.py, prusalink.py - the direct sends, status and
file calls for Creality's LAN protocol and PrusaLink.printer_control.py, motion_guard.py - driving the printer, and
the safety checks in front of every move.toolpath.py, bgcode.py, preview.py - the layer-by-layer
preview.viewport.py - the 3D view of the plate.config_store.py - the saved configuration in AppData (printer
passwords DPAPI-protected).coffee.py - the buy-me-a-coffee pop-up's rules.diagnostics.py - the activity log behind the Diagnostics page.static/ - the stylesheet (light and dark), the app's script, the
3D view and preview scripts, and the vendored Three.js (MIT).tests/ - the automated test suite.testdata/ - test projects saved from each slicer (our own
models).packaging/ - the PyInstaller spec, the Inno Setup script, the
build script and the icon.tools/ - the 3MF text-editing tool.docs/printer-compatibility.md - which printers can be reached, and
why.See CONTRIBUTING.md: the two rules (accessibility is a shipping
requirement; every bug found by hand becomes a test first), how to
run and test the code, and the short contributor agreement.
Principles the code follows:
AccessSlice is free software under the GNU General Public License,
version 3 (see LICENSE). You may use it, study it, change it and
share it; if you distribute a changed version, it must stay under the
same licence with its source available. Copyright 2026 Edis Adilovic.
Other licensing terms, for example for a closed product, are available
from the copyright holder. Bundled third-party components and their
licences are listed in THIRD_PARTY_NOTICES.md.
An accessible slicer for 3D printing, built for blind and low-vision makers: every setting as labelled fields, spoken slice reports, direct send and printer control.
See the codeAn accessible slicer for 3D printing, built for blind and low-vision makers and friendly for everyone.
AccessSlice lets you prepare, slice and send 3D prints with a screen reader, from start to finish. Every setting is a labelled field, every result is spoken, and the printer can be followed and controlled from ordinary pages instead of a touchscreen.
It is free, open source, and made by one person.
Mainstream slicers such as Bambu Studio, PrusaSlicer and Creality Print draw their own screens, and screen readers cannot use most of them. AccessSlice does not replace the slicer. It replaces the screens:
Nothing is hidden behind a picture. The 3D view of the plate and the sliced preview are there for sighted helpers, and every fact in them is also on the page in words.
These printers have been used with AccessSlice for real prints, from a new job to the finished part:
These use the same slicer and talk to the printer the same way as a tested printer, so they should work. Nobody has tried them yet. If you do, please report how it went (see "Reporting a problem or a new printer").
The details and sources are in docs/printer-compatibility.md.
AccessSlice never needs the internet.
AccessSlice-Setup-<version>.exe
(for example AccessSlice-Setup-1.0.1.exe).Good to know:
The first time AccessSlice starts, a setup wizard takes you through everything it needs, one step per page. Each page says exactly what to do and ends with a button for the next step. It takes about ten minutes, most of it in the slicer's own installer.
The wizard can be run again at any time - for a second printer, for example - from Help and tour or from Settings.
Some slicers' own first-start screens (signing in to Bambu Studio, for example) are hard to use with a screen reader. If you get stuck there, this is the one time a sighted helper is worth asking for. It is needed once; AccessSlice does the rest from then on.
Start a new print job on the Home page. Choose the printer and give the path of your model file (an STL, STEP or OBJ). AccessSlice builds the project itself, on the settings of your newest saved project for that printer, and opens it. A large model can take a while; the building page tells you the stage and the time every 15 seconds.
Creality printers differ in this one step only: Creality Print's engine cannot turn a model file into a project, so AccessSlice opens Creality Print for you. Import the model with Ctrl+I, save the project with Ctrl+Shift+S, and AccessSlice opens it the moment it is saved. Everything after that - settings, slicing and sending to the printer - happens in AccessSlice, exactly as for the other brands.
Or Open a project file you saved earlier. Your projects folder is listed newest first.
Edit on the tabs: Quality, Strength, Support, Speed, Adhesion, Others, Filaments, Printer and presets, Placement, All settings and Backups. Each tab shows the settings that matter most in plain language, then every other setting on that topic. Changes are staged first; the Review page lists them with old and new values, and Save writes them all, with a backup of the file you started from.
Slice now, on the Slice and send page. Warnings come first, in words. The slice report gives the print time, the filament used, and anything the engine complained about. Preview describes the print layer by layer.
Send: straight to a Prusa or Creality printer over your network, to a USB drive with one button, or through the slicer's own send window for Bambu Lab printers. Before a print starts, AccessSlice asks you to check with your hands that the build plate is empty.
Print. For Prusa and Creality printers, the Printer status page reads the progress aloud every half minute and announces the end.
Help and tour in the top navigation explains every page and tab, and can be read at any time.
AccessSlice is free and made by one person. A week after you first start it, a small pop-up asks whether you would like to buy me a coffee, and after that it asks about once a month. Buy me a coffee opens buymeacoffee.com/accessible3d in your browser; Not now (or Escape) closes it until next month. There is also a quiet link on the Home page for any time.
Please use the Issues page of this project on GitHub: https://github.com/Accessible3D-Edis/AccessSlice/issues
Helpful things to include:
Tried a printer from the "not tested yet" list? Please report it either way - it working is as useful to hear as it failing. Printers move to the tested list as they are confirmed.
AccessSlice is Python 3 using only the standard library, with server-rendered HTML pages. The installed program adds pywebview for its window.
With Python 3.13 installed:
python app\accessslice.py
That opens AccessSlice in your default browser with a console - the
development mode. The installed program's entry point is
app\accessslice_window.py (its own window; needs
pip install pywebview).
python -m unittest discover -s tests -v
728 checks, standard library only, fully offline and hermetic: they
never touch your real configuration or your slicers' settings, and
never launch a real program. A full run takes about half an hour.
tests/README.md describes what each file covers.
pip install pyinstaller pywebview
python packaging\build.py
That produces the one-folder bundle packaging\dist\AccessSlice\
and, with Inno Setup 6 installed, the installer
packaging\output\AccessSlice-Setup-<version>.exe. The version number
lives in app\version.py. After a build,
python -m unittest tests.test_packaged -v drives the built program
itself. Code signing is one configuration file away; see
packaging\README.md.
app/ - the program:
accessslice.py - the development entry point (browser tab).accessslice_window.py, appwindow.py - the installed program's
entry point: its own window, the server stopped when it closes.server.py - the local web server and routing.webui.py - every screen as accessible server-rendered HTML.wizard.py - the setup wizard's printers and steps.backends/ - one module per slicer (Bambu Studio, Creality
Print, OrcaSlicer, Anycubic Slicer Next, PrusaSlicer) behind one
interface.slicer_project.py - the open project, staged changes, safe
saving.settings_catalog.py - plain-language knowledge about settings.profiles.py, prusa_profiles.py, creality_profiles.py - the
slicers' own preset libraries.engine_driver.py, build_job.py, newjob.py,
prusa_newjob.py - slicing and building new projects with the
slicers' engines.creality_lan.py, prusalink.py - the direct sends, status and
file calls for Creality's LAN protocol and PrusaLink.printer_control.py, motion_guard.py - driving the printer, and
the safety checks in front of every move.toolpath.py, bgcode.py, preview.py - the layer-by-layer
preview.viewport.py - the 3D view of the plate.config_store.py - the saved configuration in AppData (printer
passwords DPAPI-protected).coffee.py - the buy-me-a-coffee pop-up's rules.diagnostics.py - the activity log behind the Diagnostics page.static/ - the stylesheet (light and dark), the app's script, the
3D view and preview scripts, and the vendored Three.js (MIT).tests/ - the automated test suite.testdata/ - test projects saved from each slicer (our own
models).packaging/ - the PyInstaller spec, the Inno Setup script, the
build script and the icon.tools/ - the 3MF text-editing tool.docs/printer-compatibility.md - which printers can be reached, and
why.See CONTRIBUTING.md: the two rules (accessibility is a shipping
requirement; every bug found by hand becomes a test first), how to
run and test the code, and the short contributor agreement.
Principles the code follows:
AccessSlice is free software under the GNU General Public License,
version 3 (see LICENSE). You may use it, study it, change it and
share it; if you distribute a changed version, it must stay under the
same licence with its source available. Copyright 2026 Edis Adilovic.
Other licensing terms, for example for a closed product, are available
from the copyright holder. Bundled third-party components and their
licences are listed in THIRD_PARTY_NOTICES.md.