--GitHubClassic is for desktop windows. On phones and narrow windows, use
the Assistive Forge interface.
Update available. Refresh to get the latest version.
Your saved choice is the Classic interface, which is desktop-only
for now. You are in the Assistive Forge interface on this screen.
Classic will open on your next visit from a desktop-sized
window.This window is now phone-shaped, and Classic is desktop-only for
now. You can keep working, or switch to the Assistive Forge
interface with the A. Forge button.
Recovery Mode: the last start was interrupted, so this page opened
with reduced settings. Automatic preview is off and the quality is
set to fast.
High memory usage detected. Consider saving your work.
A 3D model gets an approximate outline, after asking.
Measuring is not available yet. Turn on Show measurements in
Preview Options to see the model’s overall size.
Main Page
Your projects, organized like folders on a desktop computer.
Open or start a project
Upload an OpenSCAD (.scad) file to customize its parameters
and generate STL files
or
Saved Projects
Linked folders
Your projects organized in folders (stored in this browser)
No saved projects yet. Upload a file and choose to save it.
Main Page Tour
Guided tour • about 2 minutes
See what everything on this page does, including what works
differently from desktop OpenSCAD.
What you’ll learn
Where projects open and how saving works
The ready-made Charm and Braille designers
What Clear Cache does before you press it
The controls in the header
Beginners Start Here
Guided tour • about 3 minutes
Load a simple example, change a few parameters, and generate
your first file.
Type text and get 3D-printable braille. Translation runs on
your device. Make cards that print leaning back with
break-away supports, small braille charms, or two-part
tactile signs with raised letters and braille.
What you can make
Braille business cards and contact cards. Long text
splits across cards or prints all at once.
Braille charms, pendants, and zipper pulls with
1–2 cells
Explore Features & AccessibilityExpand to learn more about accessibility features
Built around accessibility patterns commonly seen in open
source tools like VS Code and JupyterLab: predictable
keyboard navigation, strong focus visibility, and clear
status messaging.
Prefer to browse? Open Help for examples and deeper
guidance.
Common tasks
Enable libraries and resolve dependencies
Save and reuse presets for repeatable settings
Export files and work with ZIP projects
Advanced Makers
Work with multi-file projects, libraries, and advanced
OpenSCAD features.
Key capabilities
Upload ZIP files with include/use dependencies
Enable MCAD, BOSL2, and other libraries
Export in multiple formats (STL, OBJ, AMF, SVG, DXF)
Save and manage projects with companion files
Keyboard-Only Users
Complete the full workflow without a mouse using
predictable keyboard controls.
Navigation highlights
Tab through parameters in logical order
Undo / Redo with Ctrl+Z / Ctrl+Y
Skip-to-content link at screen top
Arrow keys navigate toolbar menus
Low Vision Users
Use high-contrast themes, large touch targets, and
visible focus indicators.
Visual aids
Toggle High Contrast mode via the HC button
Switch between light and dark themes
On phones and tablets, controls are at least 44 × 44
px
Visible focus rings on every focusable element
Voice Input Users
Control the app with voice commands using stable,
speakable button names.
Voice-friendly features
Say button labels: "Click Generate", "Click Help"
Every control's name says what it does, in the words
you see
Toolbar menus open with "Click File", "Click View"
Screen Reader Users
Customize models with clear status announcements and
full keyboard-only workflow.
Assistive-tech features
Live region announces parameter changes and render
status
ARIA landmarks for quick navigation between sections
Plain-language error messages instead of raw alerts
Dialogs keep focus inside and return it when they
close
Storage Usage
Persistent storage for cached files, presets, and settings
-- used
Storage information not available in this browser.
Customizer
Forge additions
Customizer
🔗Shared project
Console00
No output yet. Messages from the OpenSCAD engine will
appear here.
No errors. Compile or render to check for issues.
Fonts available to the text() function
Select
Font name
Style
Sample
No fonts match this filter.
Image Measurement
Pinned
0 px=
No image
Default: iPad 264 PPI, or use Calibrate
Click to pin crosshair. Double-click or Escape to unpin.
Arrow keys move crosshair; Shift+arrows for 10 px steps.
Enter/Space toggles pin. Scroll to zoom.
Reference ImageOff
Upload a PNG, JPEG, or SVG image as a reference overlay
behind your 3D model.
This does not affect the SCAD file. It is a visual guide
only.
Toggle visibility of the reference image overlay in the 3D
previewToggle dimension measurements and outline on the overlay
image
100%
Adjust reference overlay transparency from 0 to 100
percent
Choose the color applied to SVG overlay strokes and fills.
Auto mode picks a visible color for the current theme.
Select a tablet model to automatically set the overlay
width and height to match the device screen dimensions in
millimeters
Overlay size:-- × -- mm
More options
Chooses the height the reference image sits at. Top
of the model follows the model as it changes.
When off, the overlay uses the SVG file's saved
dimensions. Turn on to manually adjust size, position,
and fit.
Choose the part of the picture to keep. Your original image is not
changed: cropping saves a copy and the overlay uses that.
OpenSCAD Source
Current Customizer JSON
How do you hold the Joy-Con?
You can change this any time in Keys, on the Controller tab.
How do you want to use the two Joy-Cons?
You can change this any time in Keys, on the Controller tab.
Features Guide
OpenSCAD Library Bundles
This customizer includes popular OpenSCAD library bundles that
provide reusable components and advanced functions for your
models.
Available Libraries
MCAD: Mechanical components like gears, screws,
bearings, and fasteners
BOSL2: Advanced geometry primitives, attachable
parts, and complex shapes
NopSCADlib: Parts library for 3D printers and
electronics projects
dotSCAD: Artistic patterns, designs, and
creative geometry
How to Use Libraries
Include library modules in your OpenSCAD code:
use <MCAD/boxes.scad>;use <BOSL2/std.scad>;
The customizer automatically detects which libraries your model
uses and marks them as "required". You can also manually enable
any library from the 📚 Libraries panel.
This example demonstrates MCAD library usage with mechanical
components.
Related Features
ZIP projects: Upload a
.zip containing multiple .scad files
and dependencies
File tree: View included files to confirm
everything loaded correctly
Source viewer: Inspect the fully assembled
source (Advanced tab)
Color Settings
Add interactive color pickers to your models by using the
[color] annotation in your OpenSCAD parameters.
Syntax
// Hex color with annotationbox_color = "FF6B35"; // [color]// RGB hex format (with or without #)primary_color = "#3498DB"; // [color]secondary_color = "E74C3C"; // [color]
How It Works
When you add the // [color] annotation to a string
parameter, the customizer:
Displays a visual color picker instead of a text input
Shows a color preview swatch next to the parameter
Validates hex color values automatically
Updates the preview in real-time as you change colors
Using Colors in Your Model
Use your color parameter in OpenSCAD however you prefer (RGB
arrays, named colors, or helper functions). The example below
includes a working conversion helper.
This example shows how to use color parameters with a complete
hex2rgb implementation.
Preview-Only Model Color
You can also change the model’s display color without changing
your OpenSCAD file:
Preview Settings & Info → Model Color –
affects the preview only
Reset: returns to the theme default display
color
Presets
Save and load your favorite design configurations to quickly
switch between different variations of your model.
Saving Presets
Adjust your parameters to the desired values
Click the Save Preset button above the
parameters
Enter a descriptive name for your preset
Your preset is saved locally in your browser
Loading Presets
Use the preset dropdown menu to quickly switch between saved
configurations. The parameters will update automatically.
Managing Presets
Rename: Update preset names for clarity
Delete: Remove presets you no longer need
Export/Import: Share presets with others or
back them up
Presets are stored per-file, so each model has its own set of
saved configurations.
Sort Designs
Sort designs by name (A–Z or Z–A)
or by date created/modified in the Manage Designs panel.
Sort preference is saved per browser session.
Import Modes
Merge: add imported designs to your existing
ones (default).
Replace all: delete all existing designs for
the current model, then import. Always asks for confirmation.
Export Naming
Single-design exports use the design name as the filename (e.g.
iPad Pro 11 LAMP layout.json).
Compatibility Analysis
When loading a design, the app compares its parameters against
the current model’s schema.
Hidden parameters are excluded from this check: no false
“new” or “obsolete” warnings.
Advanced Features
Parameter Group Visibility
Each parameter group header has a
Hide group (×) button. Click it to remove the
group from view.
A Show all link appears at the bottom of the
panel, showing how many groups are hidden.
Hidden groups are remembered per model in localStorage.
Keyboard: Tab to the × button and press Space/Enter; Tab to
"Show all" to restore.
Parameter Search & Jump
Search the Customizer: Filter by
name/description
Jump to group: Quickly navigate long parameter
lists
Show all: Restore all parameters after a search
Output Formats
Export your customized models in multiple formats:
STL: Standard format for 3D printing (binary or
ASCII)
OBJ: Common 3D model format with material
support
OFF: Object File Format for geometry
AMF: Additive Manufacturing File Format
3MF: Not available in this browser build.
Export as STL or OBJ instead. Most slicers accept both.
Multi-File Projects
Upload ZIP files containing multiple OpenSCAD files. The
customizer will:
Automatically detect the main file
Extract and mount all included files
Display a file tree showing the project structure
Support relative paths in include and
use statements
A small ZIP project that demonstrates includes, modules, and the
file tree.
Parameter Limits Override
By default, sliders and number inputs respect the limits defined
in your OpenSCAD file. You can unlock parameter limits from the
Advanced menu to enter custom values.
Source Code Viewer
View the complete OpenSCAD source code, including all included
files, from the Advanced menu. This helps verify that multi-file
projects are loaded correctly.
Current Customizer JSON
Use Advanced → View Customizer JSON to copy or
archive your current configuration (useful for clinics,
classrooms, or troubleshooting).
Render Quality
Choose different quality levels for preview and exports:
Preview quality: Auto, Fidelity, Balanced, Fast
Export quality: Model default, Low, Medium,
High
Complexity indicator: Shows a suggested quality
tier based on your model
Workflow & Actions
Grid Size (Printer Bed)
Open Preview Settings and use the
Grid size controls to match your printer bed
dimensions.
Choose from common presets (Ender 3, Prusa MK4, CR-10, large
format) or enter custom mm values.
The grid updates immediately and the setting is remembered
across sessions.
Screenshot Reference Image
Include a screenshot.png in your ZIP project and it
is automatically loaded as a reference overlay behind your
keyguard in the 3D preview.
Choose a tablet from the
Size to device dropdown to snap the overlay to
known screen dimensions.
If your SCAD file has screen_width_mm and
screen_height_mm parameters, the overlay resizes
automatically when you load the model.
The app is designed around a simple, repeatable workflow. A
progress indicator at the top shows where you are.
The 4-Step Flow
Upload: Load a .scad or
.zip project
Customize: Adjust parameters, use presets,
search/jump for large models
Generate: Create your output file
(STL/OBJ/OFF/AMF)
Download: Download the generated file (or
download the last file again)
Sharing and Drawings
Copy Link sits with the presets: it copies a
link that opens this design with your settings.
Publish is in the File menu in the Standard
view: it writes a manifest you can host yourself.
The Design menu opens a drawing or a photo in
the drawing editor.
Focus Mode
Use Full Screen (Focus Mode) to maximize the
preview area when presenting or when working on smaller screens.
Accessibility Features
The UI is built to support keyboard-only use, screen readers,
voice control, and low-vision needs.
Console Warnings for Missing Files
When a model uses include <file.txt> but the
file is missing, the Console panel surfaces the
warning immediately.
A badge count on the Console button updates, and a live region
announces the warning to screen readers.
Filter by Warnings in the Console panel to see only relevant
messages.
Live Region Announcements
Designs sorted: announced when sort order
changes in the Manage panel.
Group hidden / shown: announced when parameter
groups are hidden or shown.
Grid size updated: announced when the printer
bed dimensions change.
Overlay sized: announced when the reference
overlay is resized to a tablet device.
Keyboard & Focus
Skip link: Press Tab at the top to
jump to main content
Undo / Redo: Ctrl+Z /
Ctrl+Shift+Z
Focus indicators: 3px visible outlines (4px in
High Contrast mode)
Touch targets: Buttons meet a 44×44px minimum
size
Screen Readers
Status announcements: Key operations are
announced via live regions
Landmarks: Major sections are labeled as
regions for quick navigation
Plain-language errors: Errors include clear
titles and suggested fixes
Theme & Contrast
Theme toggle: Light / Dark
High Contrast (HC): AAA-oriented contrast and
thicker focus/borders
Forced colors: Works with Windows High Contrast
/ forced-colors mode
Full details, including tested screen reader/browser
combinations.
Alt View
Alt View draws the 3D preview with text characters, the way
terminals once drew pictures, and gives the whole interface the
look of a phosphor screen. It is a hidden extra: finding it is
part of the fun, and the keyboard finds it with the same moves as
the camera buttons. When it is on, a key button sits next to the
theme button, and a Lens button at the left of the Generate
button's row opens the sliders that set how fine the drawing is
and how strong its outlines are.
What to know
The key: the button next to the theme button
turns Alt View on and off, on the Main Page or in a project;
found three times, it stays
The look: green on black with the dark theme,
amber with the light theme, and a blue text-mode screen in
Classic
Sounds: a short switch sound plays when it
comes on, when its look changes and when it goes off; every
button sounds a key of its size, a slider clicks step by step
like a dial, a drawer unlatches, rolls on its rails and meets
its stop with a thump, checkboxes and switches flip like a
lever, scrolling ticks a line at a time like a typewriter's
roller, lists click, menus latch, typing is a quiet key, and the
3D view ticks as you turn, tilt or zoom it; in Classic the look
has recordings of its own, a cassette deck, a camcorder and
plastic switches; the sounds button just before the key turns
them all off and on, the same setting as Play sounds in
Preferences, where each kind of sound can also be turned off on
its own
Drawers: the Customizer, Preview Settings,
Camera and Lens drawers and Classic's panes slide open and shut
like desk drawers, their controls riding inside; when Alt View
comes on they start shut, then the ones you had open come back,
left to right; when your system asks for reduced motion they
open and shut at once
Session-only: The theme switch does not
persist; closing the browser reverts to normal
Each character is the one whose shape best matches the picture in
its cell, drawn in the screen's one color, so denser characters
read brighter, as on a real terminal. The drawing changes only
when the view moves or a setting changes. It is based on research
into shape-vector ASCII rendering (credited in
THIRD_PARTY_NOTICES.md).
On a desktop window the adjust button sits beside the projection
button in the camera panel (a phone has the four sliders instead).
It switches the Pan D-pad between two jobs:
Off (to begin with): the arrows move the view
On: the arrows adjust Edges, Focus and Glow
Edges, Focus and Glow
While adjusting, the Pan D-pad's arrows set:
Up arrow: stronger edges (sharper outlines,
more contrast)
Down arrow: softer edges (less contrast)
Right arrow: larger characters (fewer columns)
Left arrow: smaller characters (more columns)
Shift + Up or Down: Glow, a faint afterglow
behind moving edges
Edges go from 50% to 400%, Focus from 0% to 170%, and Glow from 0%
to 100%. In the green and amber looks they start at Edges 90%,
Focus 65% and Glow 50% (on a phone, Focus 45%); in Classic's look
at Edges 140%, Focus 10% and Glow 10%. Each look keeps its own
settings. When your system asks for reduced motion, Glow stays at
0%.
Under 40%: lines
Below 40%, Focus draws the model as lines instead, the way an
early vector arcade screen did: bold at 35%, the thinnest at 0%.
Edges then chooses which creases become lines (Soft, Normal or
Sharp); the model's outline is drawn too, where its surface turns
away from you, and its rounded parts show as a dimmer wireframe of
a few lines, the way the low-polygon models of that era looked.
The Surfaces slider sets how solid the faces under them are, from
a faint 1% to solid at 100%, lit as the main view lights a model,
with cavities darker. The green and amber screens glow; the blue
one in Classic draws crisp pixels.
Beside the preview
The status line under the preview shows the current values, for
example
[ALT VIEW] EDGE 100% · FOCUS 60% · GLOW 15% (under
40%, LINES in place of FOCUS). The minus and equals keys step
Focus through Fine, Normal and Bold.
Sliders
While Alt View is on, a Lens button sits at the left of the
Generate button's row, under the preview, and opens a drawer with
four sliders (on a phone, the Lens drawer beside the camera
drawer): Edges, Focus, Glow and Surfaces, for fine steps. In
Classic they are under Lens in Viewport-Control, and the Lens
settings button on the 3D view toolbar opens it on the first
slider; the Simplified view has no Viewport-Control, so there they
sit at the foot of the Customizer. The Glow slider is hidden when
your system asks for reduced motion.
Tips
Each slider has a button that puts it back where it starts;
double-click the adjust button to put all four back
Your settings are kept for the next time you turn it on
The controls beside the preview, the sliders and the D-pad set
the same values: use whichever you prefer
Edit File
Editing:
Press Ctrl+S to save and preview, or click
"Apply and Preview"
Reset the Customizer?
This will reset all parameters
to their original default values.
Any customizations you've made will be lost.
About OpenSCAD Assistive Forge
OpenSCAD Assistive Forge
A browser-based OpenSCAD environment built for blind and low-vision
makers.
Free software under the GNU General Public License, version 3 or
later.
Not affiliated with the OpenSCAD project. Runs the OpenSCAD engine
compiled to WebAssembly.
Preferences
Not built here. This app reports warnings and errors in the
Error-Log and Console panels instead of drawing them on the model.
Automatically place models on the build plate at Z equals zero.
90%
Both open over the preview on a phone. Below 90%, their gray help
text is harder to read over a very bright or very dark model.
These settings apply to the code editor. The plain-text editor
used in high-contrast mode takes the font size only.
px
spaces
columns
Not offered. Tab moves to the next control so keyboard and
switch users are never trapped inside the editor.
Use the Indent and Unindent buttons on the editor toolbar, or Edit
▸ Indent.
Not built here. The editor has one light and one dark scheme and
picks between them from your system setting.
Not built here. Nothing draws spaces and tabs as visible marks in
this editor.
Always on here. Line numbers cannot be switched off in this
editor.
The desktop version also offers a font family, Ctrl-wheel text
zoom, automatic indenting, backspace unindenting, a choice between
indenting with spaces or tabs, and changing numbers by scrolling
the mouse wheel over them. None of those are built here. This
editor uses one monospace font, indents with spaces, and indents
new lines to match the line above.
Sending a model straight to a printer (the desktop's OctoPrint
and slicer hookups) is not built here.
Export the model and open it in your slicer.
Most of the desktop's Advanced settings tune engines this build
does not have (OpenCSG, the CGAL caches, window docking,
localization), so those are not imitated here. The rows below are
this build's own advanced settings.
The settings closest in purpose live where they are used: preview
quality with the preview controls and in View ▸ Preview Quality,
the edge detail limit in View ▸ Edge Detail Limit, and Design ▸
Flush Caches clears cached geometry.
Use Manifold geometry engine for faster rendering. Disable if you
encounter issues with complex models.
5-30× faster. Disable if models fail to render.
Clears this app's downloaded files and reloads it. Use this if the
app misbehaves after an update.
The controller settings live in the Keys dialog, beside the
keyboard shortcuts.
Every keyboard shortcut in this app can be viewed and changed in
the Keys dialog.
Keys
Test your controller
During the test, a press on your controller shows here and does
nothing else. The test stops after 10 seconds without a press,
or with Escape.
Action
Button
OpenSCAD Console Output
This shows output from echo() statements in your
OpenSCAD file. Designers often use echo() to provide guidance, show
calculated values, or help troubleshoot configurations.
No console output yet. Generate a model to see output.
Tip: Look for ECHO: lines that may
contain important instructions from the model designer.
Welcome to OpenSCAD Assistive Forge
Note for first time users:
This app runs entirely in your browser.
All of your work stays on your device. No information is sent to
or collected by anyone else.
Your first render downloads the OpenSCAD engine, about 15 to 30
MB. It downloads once and is saved for your next visit.
Your work can be saved in your browser's storage. You can also
link a folder on your own drive if you prefer.
Clearing the browser's site data removes all saved work and the
app itself.
Browser based process
This app runs entirely in your browser. All of your work stays
on your device. No information is sent to or collected by
anyone else.
Initial download, about 15 to 30 MB
Your first render downloads the OpenSCAD engine, about 15 to
30 MB. It downloads once and is saved for your next visit.
Local project storage
Your work can be saved in your browser's storage. You can also
link a folder on your own drive if you prefer.
Completely removable
Clearing the browser's site data removes all saved work and
the app itself.
On a desktop, you can switch between interfaces at any time with the
button in the top right corner of the app.
Upload your .scad file, companion files, and preset
.json file.
Save the manifest JSON above as
forge-manifest.json in the same directory.
One archive holding this project's files, the manifest above, and
a record of where the design came from.
Unzip it into your repository and everything is in place.
3. Get Your Shareable Link
Whoever opens the link sees the values you have on screen right now,
not the design's own defaults.
Paste the raw URL path to the directory containing your files (e.g.,
https://raw.githubusercontent.com/user/repo/main/).