Transform plain text, PDFs, and DOCX files into realistic handwritten pages with modular rendering pipelines, writer-style simulation, and optional neural handwriting synthesis.
Generate believable handwritten pages using:
- Writer-style variation engine (
WriterState) - Baseline drift & spacing variation
- Ink simulation
- Natural imperfections
- Realistic paper rendering
- PNG & PDF export
Scripta supports:
- Plain text
- PDF documents
- DOCX files
Perfect for:
- assignments
- notes
- essays
- study material
- journals
- handwritten mockups
Choose from multiple writer personalities:
| Preset | Description |
|---|---|
| Casual · Loose | Relaxed notebook writing |
| Neat · Compact | Clean organized writing |
| Flowing · Cursive | Connected cursive flow |
| Bold · Chunky | Thick expressive strokes |
| Sharp · Angular | Technical sharp edges |
| Relaxed · Bouncy | Rounded energetic motion |
| Tight · Careful | Precise compact writing |
| Free · Expressive | Loose dynamic handwriting |
Experimental VATr++ integration enables:
- Neural handwriting synthesis
- Writer-conditioned generation
- Human-like stroke realism
- IAM handwriting dataset support
- Learned handwriting behavior
Input Parsing
↓
WriterState Variation Engine
↓
Glyph / Neural Rendering
↓
Page Composition
↓
Artifact Simulation
↓
PNG / PDF Export
scripta/
├── input_handler.py
├── glyph_store.py
├── variation_engine.py
├── renderer.py
├── page_compositor.py
├── neural_renderer.py
├── neural_page_compositor.py
└── artifact_sim.py
git clone <YOUR_REPO_URL>
cd Scriptapython3 -m venv .venv
source .venv/bin/activatepip install --upgrade pip
pip install -r requirements.txtmkdir -p fonts
curl -L https://raw.githubusercontent.com/googlefonts/caveat/main/fonts/ttf/Caveat-Regular.ttf \
-o fonts/Caveat-Regular.ttf
curl -L https://raw.githubusercontent.com/googlefonts/caveat/main/fonts/ttf/Caveat-Bold.ttf \
-o fonts/Caveat-Bold.ttfpython app.pyOpen:
http://127.0.0.1:7860
python main.py \
--input "Hello from Scripta" \
--output output/hello.pngOptional configuration:
export GRADIO_SERVER_NAME=127.0.0.1
export GRADIO_SERVER_PORT=7860Optional advanced setup for VATr++ neural handwriting synthesis.
git clone https://github.com/EDM-Research/VATr-pp.git VATr-ppcd VATr-pp
pip install -r requirements.txt
pip install msgpack wandbVATr-pp/files/vatrpp.pth
VATr-pp/files/resnet_18_pretrained.pth
data/iam/data_subset/data_subset/*.png
python scripts/prep_style_samples.pypython main.py \
--backend neural \
--input "Hello world" \
--output output/neural.png| Category | Technology |
|---|---|
| Language | Python |
| UI | Gradio |
| Rendering | Pillow, OpenCV |
| AI | PyTorch |
| Neural Synthesis | VATr++ |
| Dataset | IAM Handwriting |
| Processing | NumPy |
Automatically created when needed:
output/
fonts/
pages/
data/iam/
- Font backend works independently.
- Neural backend is optional.
- Missing assets produce friendly setup errors.
- Apple Silicon supported through PyTorch MPS.
- Designed for modular experimentation and extensibility.
- Font rendering pipeline
- UI rendering flow
- WriterState engine
- Paper + ink simulation
- PNG/PDF export
- VATr++ neural synthesis
- Neural writer cloning
- IAM style conditioning
Scripta aims to become a modular AI handwriting synthesis platform for:
- digital note generation
- educational tooling
- document realism pipelines
- synthetic handwriting research
- AI-assisted writing workflows