100% in-browser Zero data transmission Auto-clears on exit
System Ready
Accuracy: what to expect from in-browser translation (chrF explained)

chrF measures how much of a translation's character sequences match a reference translation (0–100%, higher is better). Roughly: above 60% the meaning is reliably preserved and sentences read naturally; 45–60% is understandable but needs editing; below 45% is unreliable. Medmorf's NLLB‑200 600M model scores ≈ 72% chrF on short Dutch→English clinical sentences in the Benchmark tab.

Larger models translate better. NLLB‑200 also ships 1.3B and 3.3B versions and a 54B research model; each step up improves quality, especially for long or rare-word sentences and languages other than English. Frontier services (DeepL, GPT‑4-class models) are better still on fluency and medical terminology — but they run in a vendor's cloud. Medmorf uses the 600M model because it is the largest that fits a browser tab (~600 MB) and runs on CPU without a GPU.

Tips: translate short sentences, keep drug names and dosages in the source language if unsure, and verify numbers and negations ("no signs of…") — small models sometimes drop them.

File Translation
Drop .xlsx or .docx file here, or browse
Checking model status...
Model not in memory

Detect and replace personal data (PII) in medical documents — entirely in your browser. Nothing is uploaded.

Accuracy: what to expect from in-browser de-identification (recall explained)

Recall is the share of real identifiers (names, dates, addresses, IDs…) that were found. Every missed identifier is a leak, so recall is the number that matters; precision only says how many flagged items were false alarms (harmless, just over-redaction). 90% recall on a letter with 20 identifiers means 2 are still in the output.

Why Medmorf's numbers are lower than cloud tools. Everything runs in your browser, so the models are small: a 46–800 MB NER detector and a 2–4B-parameter LLM. On Medmorf's synthetic clinical letters (Dutch + English, Benchmark tab): GLiNER PII ≈ 79% recall (weak on dates), Qwen3.5 2B ≈ 83%, and NER + LLM combined higher because each catches what the other misses. Purpose-built de-identification systems trained on clinical corpora reach 96–99% recall on the i2b2 benchmark, and frontier LLMs (GPT‑4-class) ≈ 92% — but those need a server or send your text to a vendor.

ApproachWhere it runsTypical recallNotes
NER only (GLiNER / XLM‑R)In browser, CPU≈ 75–85%Fast; misses dates, IDs, organisations
LLM only (Qwen3.5 2B)In browser, WebGPU≈ 80–85%Better on dates/organisations; slower
NER + LLM (recommended)In browserhighest available hereTwo passes; still proofread
Frontier LLM (GPT‑4-class)Vendor cloud≈ 90–95%Text leaves your device
Specialised clinical de-id (RoBERTa-large, Philter…)Server≈ 96–99% (i2b2)English-centric; not in-browser

Reference points: i2b2 2014 de-identification benchmark and published GPT‑4 evaluations (Scientific Reports 2025; iScience 2025). Use Medmorf as a first pass, then review the highlighted mapping and search the output for anything the models missed — never treat the output as fully de-identified without a human check.

Auto-detecting best method… Checking your hardware.
Checking WebGPU…
Checking resource headroom…
Advanced settings — model selection
Active pipeline: auto Turn on one detector, one LLM, or both.

NER / detector

CPU-friendly span detectors

LLM

WebGPU Qwen verification

How it works · models & hardware

LLM only (recommended on WebGPU devices): Qwen3.5 handles all PII detection in a single pass.

NER + LLM: Run a NER model first, then let the LLM verify and catch remaining PII. Useful for additional coverage or comparison.

NER only: Run just the selected NER model. Fastest option, no GPU required, but lower accuracy.

Hardware: LLM modes need a modern GPU or Apple Silicon Mac with WebGPU (Chrome/Edge 113+, Safari 18+). The 4B model needs ~3.9 GB GPU memory; pick a smaller model on devices with limited VRAM. NER-only mode runs on CPU.

  • Qwen3.5 2B (default) — ~2.2 GB VRAM. Best PII recall under 3 GB in the Benchmark tab (83%).
  • Qwen3.5 4B — ~3.9 GB VRAM. Largest browser-feasible option; needs ~4 GB GPU memory. All models are kept ≤4B by design.
  • Multilingual PII NER — ~280 MB. XLM-RoBERTa, no GPU needed. Names, addresses, dates, IDs in 8+ languages.
  • GLiNER PII Edge — ~46 MB. Zero-shot, no GPU needed. Best for English.
  • Multilingual BERT NER — ~100 MB. Lighter general-purpose NER (people, places, organizations).
  • OpenAI Privacy Filter — ~1.5 B params (q4 ≈ 800 MB). OpenAI's bidirectional token classifier with 8 PII categories: person, email, phone, address, date, URL, account number, secret. Runs in-browser via Transformers.js + WebGPU; WASM/CPU is not supported for its quantized embedding op in this browser stack. Primarily English with multilingual robustness reported. Pick it under Advanced settings → NER Model with the NER only or NER + LLM pipeline.

Always manually review the output. First load downloads the selected model; subsequent runs use the browser cache.

⚠️ Disclaimer: Anonymization is not guaranteed to detect all PII. Always manually review the output before sharing documents. This tool is an aid, not a replacement for human review.

Medical Document

Drop document here

.pdf, .xlsx, .docx, .txt

Mapping File Optional

Drop mapping file

.xlsx or .json

No mapping loaded
Or paste text directly
Hardware: Requires WebGPU (Chrome/Edge 113+, Safari 18+). Uses the same Qwen3.5 models as anonymization.

Generate structured reports from medical documents using WebLLM + WebGPU — entirely in your browser.

Accuracy: what to expect from in-browser summaries

Medmorf scores summaries by fact coverage — the share of clinically relevant facts from the source that appear in the summary — and by hallucination probes, statements that appear although they are not in the source. On the synthetic notes in the Benchmark tab the in-browser models cover ≈ 85% of the facts with no hallucinations, but they do drop items (in one test: the trigger event and a passive death wish), and they write less fluent Dutch than large models.

Larger models are better here. In a Nature Medicine study (2024), an adapted GPT‑4 produced clinical summaries judged equal or better than physicians' in 81% of cases; 2–4B in-browser models are well below that. Medmorf's trade-off is that the note never leaves your device. Treat the summary as a draft: check it against the source for missing risk information, medication, and numbers. Prefer the 4B model when your device allows it (see the memory bar), and use the structured templates — they force the model to cover each section.

Checking WebGPU...

Upload Document

Drop document here

.xlsx, .docx, .txt

Or Paste Text

Offline STT: Whisper speech recognition runs entirely in your browser via WebAssembly. No audio data is sent anywhere.

Record or upload audio, then transcribe it with OpenAI Whisper via Transformers.js — entirely offline. Transcription runs in two phases: 1. Record (nothing is processed yet) → 2. Transcribe, which starts automatically when you press Stop. As-you-speak transcription is not offered: in-browser Whisper is slower than real time on phones. Long recordings (15+ min) are supported — on a phone, transcribing takes roughly as long as the recording; keep the app in the foreground and the screen on until it finishes, or use Dictaphone mode to transcribe in short entries as you go.

Accuracy: what to expect from in-browser speech recognition (WER explained)

WER (word error rate) is the share of words a transcript gets wrong — substitutions, missed words and inserted words, divided by the number of words actually spoken. 10% WER means roughly one word in ten needs correcting; 0% is perfect. Below ~10% a transcript is usually usable after a quick read-through; above ~25% it is often faster to dictate again. WER treats every word the same, so a wrong drug name or dose counts exactly like a wrong “the” — always verify medication, numbers and names.

Why Medmorf uses small models. Everything here runs inside your browser on your own device, so nothing leaves it. That limits model size: the largest Whisper that fits a phone or laptop tab is small (~500 MB). Larger Whisper models (medium ~1.5 GB, large-v2/v3 ~3 GB) and the commercial “frontier” dictation services are noticeably more accurate, but need a GPU server or send your audio to a cloud provider.

ModelWhere it runsDutch WEREnglish WERNotes
Whisper tinyIn browser49%12%Not usable for Dutch; English only for rough notes
Whisper baseIn browser33%9%Fair for English, poor for Dutch
Whisper small (default)In browser16%6%Best that fits a browser tab; review before use
Whisper mediumServer GPU10%4%Too large for a browser tab
Whisper large-v2/v3Server GPU7%4%Too large for a browser tab
Frontier cloud dictation (2026)Vendor cloud≈4–6% average across languages; medical-tuned services report ~3% missed medical termsAudio leaves your device

Whisper figures: OpenAI Whisper paper, FLEURS read-speech benchmark (clean audio, native speakers). Real dictation — accents, background noise, phone microphones, jargon — scores worse for every model; Medmorf’s own Benchmark tab measures the in-browser models on synthetic clinical clips on your device. Frontier figures from public 2026 vendor benchmarks (Microsoft MAI-Transcribe-1, AssemblyAI Universal-3, NVIDIA Parakeet). Tips: use the small model, speak clearly in short sentences, keep the microphone close, choose the correct language, and always proofread numbers, dosages and names.

Model details
  • Whisper Tiny — ~150 MB. Fastest, basic quality.
  • Whisper Base — ~300 MB. Fair quality.
  • Whisper Small (recommended) — ~500 MB. Good quality, best for clinical use.

All models run via WebAssembly (ONNX Runtime). First use downloads the model; subsequent runs use browser cache.

Record Audio

Or Upload Audio

Drop audio file here

.mp3, .wav, .ogg, .webm, .m4a, .flac

Index and sort unsorted DICOM data from any directory or network path. Smart scanning uses file size, naming, and folder structure heuristics to avoid opening every file.

Source Directory

Scan Settings

Combine several PDF files into one document. Everything stays on your computer — files are never uploaded anywhere.

1 Add your PDF files

Drop one or more .pdf files here, or browse

Download models in advance so you can work offline when patients arrive. Inspect and manage all browser-stored data below.

Prepare for Offline Use

Download all models now while you have internet. Once cached, everything works in airplane mode.

Translation Model NLLB-200 · ~300 MB Translates between 200+ languages
Checking...
NER Model Multilingual PII NER · ~280 MB Detects names, addresses, IDs in 8+ languages
Checking...
Anonymization LLM Qwen3.5 2B · ~2.2 GB Detects and anonymizes PII via WebGPU
Checking...
Speech Model Whisper · ~500 MB Offline speech-to-text transcription
Checking...
OCR Engine Tesseract.js + English traineddata · ~25 MB Text recognition for scanned PDFs (used by PDF anonymization)
Checking...
PDF Engine PDF.js 4.7.76 · ~1.5 MB Reads and rasterizes PDFs (used by PDF anonymization & merge)
Checking...

App Updates

Force-refresh the app code without redownloading model weights. Useful after a new version is deployed.

Note: Private/incognito browser windows discard all caches when closed — including model weights. To keep models between sessions, use a normal window.

Personal Data — Where It Goes

Your documents, text and patient data are never written to disk or browser storage. They exist only in temporary JavaScript memory and are automatically removed.

You upload a file or paste text File is read into JavaScript memory (RAM) only
AI model processes data locally Translation/anonymization runs inside your browser's CPU/GPU
You download the result Output goes to your Downloads folder — you control it
Data is cleared from memory Automatically on page close, or click the button below

Currently in memory

No personal data in memory

Auto-clears when you close or refresh this page
Auto-clears after 30 minutes of inactivity
Never written to Cache API, IndexedDB, localStorage, or cookies
Total storage used Scanning...
Cache API entries
IndexedDB databases

Cache API (Model Files)

Translation and NER models are cached here. These are safe AI model weights — no personal data.

Scanning...

IndexedDB (LLM Model Cache)

WebLLM/MLC caches Qwen model weights here. These are safe AI model data — no personal data.

Scanning...

This will remove all cached models. You will need to re-download them on next use.

Measure every model on this device: memory, speed and task quality on synthetic example data. Use it to pick the right model sizes for this browser and machine.

Open this tab to load the benchmark.