Real handwriting,
written by your 3D printer.
Type a letter, pick a handwriting, and get G-code that writes it with a pen on a Bambu Lab printer. A neural network draws every word stroke by stroke, so letters join and vary like a person's, not like a font.
- Runs in your browser
- Works offline
- Nothing to install
- Every move safety-checked
How it works
Four steps from text to paper
Everything happens in the browser on your computer. Your text and handwriting never leave it.
Type your text
Type or paste it in. The app tells you how many words fit on a page; longer text continues on page 2, 3 and so on.
Pick a handwriting
Choose from 45 styles. Neatness and line wobble make it tidier or more casual.
Set printer and paper
Choose your printer and paper size, then drag the paper on the build-plate preview to where it will sit.
Save and print
Click Save G-code and run the file like any other. The printer pauses so you can place the paper and attach the pen.
A quick tour of the app
123
456
7
- 1Text. Type or paste what you want written. Characters the model can't write are listed under it.
- 2Handwriting. Click a style to use it.
- 3Sliders and sizes. Neatness, line wobble, word spacing, letter size and line spacing. What each one does.
- 4Build-plate preview. The page as it will be written. Drag the paper, scroll to zoom, click a word to write it again.
- 5New version / Save G-code. New version rewrites the same text with fresh handwriting. Save G-code makes the file.
- 6Printer settings. The pen offset, pen heights, pauses and speeds.
- 7Time estimate. How long the page takes, including the pauses.
Before your first print
Calibrate the pen offset
The pen sits a little beside the nozzle, usually in front of it. The app needs to know by how much, so the writing lands where the preview shows it and the pen never runs off the front of the plate. If BambuPlot already works for you, just copy its “tool offset” into Printer settings → Pen offset. Otherwise, print the offset test once:
Save your G-code again after changing the offset: files saved before still use the old one. The test is the same for every printer; on an A1 mini the short mark is aimed at 90 mm instead of 105 mm.
Placing the paper
Reading the preview
The preview shows the build plate from above with the front of the printer at the bottom, drawn where the pen tip can reach. Drag the paper to where it will sit, or click Place paper automatically to put it where the pen reaches so writing starts at your top border.
- Orange dashes: the edge of the area the pen can reach.
- Blue dashes: the writing area, inside your borders.
- Grey: part of the page the pen can't reach (past the front of the plate). Text continues on the next page instead.
- Red dashes: where you'll slide the paper back, only with Long pages ticked.
Running the file
What happens when you print
Send the .gcode file to the printer the same way as other plain G-code (for example on the SD card). The pauses are timed:
the printer carries on by itself when the time is up. With Printer sounds on, it plays a tune at each pause.
Change the pause lengths in Printer settings → Pauses during printing. For long pages with Long pages ticked, there's a third pause: the pen stops over the last mark it wrote; slide the paper toward the back until that mark is right under the pen tip.
Do a dry run first. Tick Printing → Dry run and save: the pen is clamped as usual, then stays 8 mm above the paper the whole way. Watch it with a hand near the stop button.
Reference
What each setting does
The handwriting settings are on the left of the app. Every gap is an average: real handwriting never repeats exactly, so each word and line still varies a little, more with higher line wobble.
Neatness
How carefully the hand writes. Higher is tidier and more regular; lower is messier, with more variation between letters. Each style starts at the neatness it looks best at.
0 to 2Line wobble
How human the page layout is: lines that slope and bow a little, ragged starts, words that drift in size and slant. 0 gives ruler-straight lines.
0 to 2 · default 1Word and line spacing
Word spacing is the average gap between words, in letter heights. Line spacing is the distance from one line to the next, in mm; it must be at least 1.5 × the letter size.
words 1.0 · lines 8 mmLetter size
The height of small letters like a, e and x (the x-height), in mm. Capitals and tall letters are about twice that.
1 to 20 mm · default 2.8Pen heights
Writing height is the nozzle's height while the pen is down; the pen is clamped touching the paper at this height in pause 2. Pen-up height is used between strokes, about 2 mm higher.
10 mm · 12 mmPen offset
Where the pen tip is compared with the nozzle. X is left/right (negative = pen to the left); Y is front/back (negative = pen in front). Measure it with the offset test.
e.g. X −4.5 · Y −27Everything else
| Setting | What it does | Default |
|---|---|---|
| Page (left panel) | ||
| Printer | Which printer the file is for. Its bed size is used for every safety check, so only run the file on that printer. | Bambu Lab A1 |
| Paper · Orientation | A4, A5, A6, US Letter, a 4×6 in card or Custom, portrait or landscape. | A5 portrait |
| Border ↔ / ↕ | Blank margin left and right (↔) and top and bottom (↕) of the page. | 15 mm · 15 mm |
| Printer sounds | Bambu's own start and finish tunes, plus a tune at each pause. A1, A1 mini and P2S only. | On |
| Long pages | For pages longer than the pen reaches (A4 on an A1). Off: the text continues on the next page. On: the printer pauses mid-page so you can slide the paper back. | Off |
| Lines | Plain paper, or the ruling of lined paper (6 to 10 mm). With lined paper, measure where its first printed line (↓ from the top edge) and margin line (→ from the left edge) are: every line of writing then sits on a printed line. Picking one also sets letters that suit it (2.3 mm for 8 mm lines). | Plain paper |
| Header · Page numbers | A line at the top of every sheet: your header text on the left, “Page 1”, “Page 2”… on the right. Each sheet's is written afresh. | Off |
| Printing (left panel) | ||
| Dry run | Saves files that do everything except write: the pen is clamped as usual, then stays 8 mm above the paper. | Off |
| Start at line | Saves this page from that line on, after the pen ran out or the run stopped. Lines above it turn grey in the preview and aren't written again. | 1 |
| New version | Writes the same text again with fresh handwriting and layout. Use it if a word comes out garbled. | |
| Save G-code · Save all pages | Saves the page on screen, or every page as a zip (1_page.gcode, 2_page.gcode, …). Print them in order with a fresh sheet each time. | |
| Printer settings → Pauses during printing | ||
| Pause 1: place the paper | How long the head waits above the first letter so you can place and tape the paper. | 30 s |
| Pause 2: attach the pen | How long it waits at writing height so you can slide the pen down to the paper and clamp it. | 30 s |
| Pause 3: slide the paper | Only with Long pages on: time to slide the paper back between passes. | 45 s |
| Printer settings → Speeds | ||
| Writing speed | Pen speed while writing. 1500 is about the speed of real handwriting; each stroke varies a little. | 1500 mm/min |
| Travel speed | Speed of pen-up moves between strokes. | 6000 mm/min |
| Up/down speed | How fast the pen is lifted and lowered. | 600 mm/min |
| Pen settle time | A tiny wait after every pen down and up so the ink starts and stops cleanly. Raise it if strokes start faint. | 60 ms |
| Printer settings → Custom sizes | ||
| Bed width, depth, max height | Only used when the printer is Custom. | |
| Paper width, height | Only used when the paper is Custom. | |
More you can do
Lined paper, two pens and other extras
Small things that save a page, or make it look more like your own notebook.
Lined paper
Under Page → Lines, pick your paper's ruling, then measure two things with a ruler: how far its first printed line is below the top edge, and where its margin line is. Every line of writing then sits on a printed line, right of the margin, and the letter size drops to suit the lines if it was bigger.
Underline, and a second pen
Type _like this_ to underline words with a hand-drawn line, and *like this* to write them with a second pen, a red one say. The printer writes everything in the first pen, then lifts so you can swap pens, and writes the rest.
Header and page numbers
Fill in Page → Header (your name and the date, say) and tick Page numbers. Every sheet starts with that line, written afresh each time, with “Page 1”, “Page 2” and so on at the right.
Write one word again
Point at a word in the preview and click it: just that word is written again, and the rest of the page keeps its handwriting. Click again for another version, or use New version for the whole page.
Start again from a line
If the pen runs dry or the run stops, leave the paper taped down, fit a new pen and set Printing → Start at line to the line it stopped on. The lines above it turn grey and aren't written again.
Dry run
Tick Printing → Dry run to save a file that does everything except write: the pen is clamped as usual, then stays 8 mm above the paper. Check where it goes before you use any ink.
Every file also switches the nozzle heater off right after homing, so the hotend stays cold next to your pen holder.
Troubleshooting
Questions
The pen goes off the front of the plate on the last lines
The pen offset is missing or wrong. Run the offset test, save the offset, then save your G-code again: files saved before still use the old offset.
Not all of my text is on the page
It continues on the next page. Use the arrows above the preview to see each page and Save all pages to get them all. For one long A4 page instead, tick Long pages and slide the paper when asked.
A word looks garbled or has a stray mark
The model occasionally slips. Click that word in the preview to write just it again, or New version for the whole page. Raising Neatness a little also helps.
The pen ran out halfway down the page
Leave the paper taped where it is. Fit a new pen, set Printing → Start at line to the line it stopped on and save again: the new file writes from that line on, starting over its first letter.
Some characters are missing
The model knows letters, digits and ! " # ' ( ) , - . : ; ?. Accents are dropped (é becomes e), capital Q, X and Z are written lowercase, and anything else is skipped. The app lists what it skipped under the text box.
The nozzle shows a temperature
The G-code never heats anything, and it switches the nozzle heater off right after homing. Any heat you still see is left over from a print and cools down by itself. If your pen holder is printed in PLA, keep it away from the hotend.
Is the G-code safe for my printer?
Every setting is range-checked, and every move in the file is checked against the chosen printer's bed (and the P1/X1 filament-cutter corner) before it is saved. If anything is unsafe, the app refuses to save and says why. Only run a file on the printer named at the top of it, and do a dry run first.
Ready to write?
It opens in your browser and remembers your settings.
Open the app