◆ ORIGINAL EMR-Ink BOARD v1.5.0.0

Original-ink vector
drawing whiteboard

EMR-TEST is a lightweight Windows whiteboard and device-testing tool: it restores real ink in real time through a “sample → pressure shaping → curve fitting → vector outline” pipeline, with SAI-style jitter correction, pressure gain, a device telemetry HUD, capacitive multi-touch test and a ghost mode, and exports PNG bitmaps or JSON vector ink.

Windows 10/11 .NET Framework 4.8 EMR/AES/MPP/USI x64/x86 Single-file, portable

Current 1.5.0.0 ~2510 KB · Portable, Download & Run

EMR-TEST · Ink Demo
Free draw
Draw line 300+ Hz · 16384 levels
16384 LVLPressure Levels detected (device dependent)
300+ HzReal-time device report-rate detection
10+Pen types: pencil / ballpoint / brush / highlighter
0Incremental refresh (within 1 frame)
01 / Overview

Built for the real feel of the pen

Most whiteboards flatten ink into equal-width polylines, so circles get corners, fast strokes break and pressure feels stiff. EMR-TEST rebuilds from the sampling source: it keeps every hardware report, fits a centripetal Catmull-Rom curve, then generates a variable-width outline per point and submits it incrementally each frame — preserving the natural thickness of real ink while keeping long strokes smooth.

True ink reproduction

Keeps every hardware sample (including coalesced events); pressure, speed and entry/exit taper jointly define the width, so the preview and the final stroke match point by point.

Variable-width outlineEntry taperFaster → thinner

SAI-style jitter correction

Adjustable 0–10 (default 3): delayed sampling + Gaussian iterative fitting + a trailing pen tip removes hand tremor, and the pen-up smoothly chases to the real endpoint.

Delayed fittingGaussian iterationsNo missing tail

Adjustable pressure gain

Pressure gain 0–10 (default 3): 0 gives a constant width and higher values amplify the pressure contrast; devices with pressure are unaffected by the toggle.

Pressure shapingLive
02 / Features

Capability matrix

From writing and testing to export, a complete loop for pen debugging and demos.

Four pen types

Pencil (graphite grain), ballpoint (round, light pressure), brush (strong pressure + entry taper) and highlighter (translucent flat tip, single fill without darkening).

Device probe

Enumerates system stylus / pressure devices, showing brand, protocol, pressure levels, tilt, barrel buttons, eraser end, VID:PID; two per row, removable individually.

Capacitive test

Multi-touch points, touch trails, pressure telemetry and report rate; trails use midpoint quadratic Béziers with per-point pressure width, with grid and trail retention toggles.

Ghost / block modes

Ghost mode releases the writing layer so you can annotate desktop content directly; the two modes keep separate ink, images and undo stacks, switching without stacking.

Images & transforms

After inserting a screenshot / image you can move it, scale from corners and rotate freely; the selection handles and cursor follow the transform, with layering and reset.

Export & save

Save = export: PNG bitmap (with paper and images) or JSON vector ink (pen type, width, color, pressure toggle and all samples); the board clears automatically after saving.

Toolbar & HUD

The bottom toolbar collapses / expands with one click; hover 1s for the move handle, hold to drag the whole toolbar and release to drop it. On maximize / restore or a logo click in penetration mode, the toolbar and HUD automatically return to their initial position. The HUD shows device, protocol, output, contacts, coordinates, pressure, Pressure Levels, pen count, tilt and report rate live.

Logo panel

The top-right panel is hidden by default; click the logo to reveal changelog, language switching and minimize/maximize/close.

Multi-language

The UI supports 36 languages, switchable live and remembered; on first run it matches the system language.

More pen types

Pen (smooth), ballpoint (fine), chalk (realistic powder), laser pointer (semi-transparent auto-fade) join the four core pen types, covering scenarios from writing to presentation.

Pressure preview

A standalone pressure-preview window shows the live stroke outline and pressure curve; you can edit the pressure response to calibrate feel on pens without pressure or with faulty sensing.

Tilt preview

Live device-tilt telemetry: an azimuth dial plus X / Y / Z axis indicators and Tilt X / Tilt Y / Azimuth readouts visualize the pen tilt and orientation in real time.

Real-time collaboration

Sync the board in real time through the official relay, with read-only / demo modes so multiple people can annotate and write on the same whiteboard.

Artwork sharing

One click generates an artwork code / URL code and share link; the compressed project JSON is uploaded and distributed via QR code or link, with no sign-up.

Stroke replay

Replay ink generation stroke by stroke on a timeline, useful for teaching, reviewing your writing and checking pressure linearity.

Screenshots

Full-screen and region snip capture; grabbed images drop straight onto the board for annotation. Esc or right-click cancels a region snip.

Changelog

An in-app Changelog window kept in sync with the site, so you can review each version changes and new capabilities anytime.

Wireless Screen

Cast the current canvas to every receiver in the same room (phone, big screen or another PC); scan or open the URL to watch, with adjustable frame rate and quality over the same relay used for collaboration.

Zone Writing

Split the canvas into 2 / 3 / 4 / 6 / 9 zones horizontally or vertically; with sync writing on, every stroke is copied to all zones, otherwise each zone stays independent.

Feedback & Sponsoring

Problem reports, feature ideas, sponsoring and other — with nickname, contact and screenshot attachment; desktop and web post to the same backend, with five payment QR codes built in.

Edge-Docked Windows

Drag any window to the canvas edge and it shrinks into a round ball with its own icon; click the ball to restore it. The ball follows the canvas colours, can slide along the edge and survives a refresh.

New Shortcuts

Alt+C wireless screen · Alt+Z zone writing · Alt+O feedback; Ctrl+T cap test and Ctrl+D device probe moved to the top-right toolbar and hide automatically in passthrough mode.

Recording & camera

A recording toolbar drops below the main one: blinking indicator, start / pause / stop, timeline, mic mute, camera toggle, teleprompter and save. The camera preview sits at the top-left of the canvas, drags as a whole and carries the same toolbar as the replay page.

Multi-page canvas

A column of page numbers on the canvas edge: the cross icon adds a page and past five pages hollow triangles appear top and bottom (hover the toolbar and use the wheel). Pages can be deleted or dragged to reorder, and hovering the middle of the canvas top / bottom edge pops up a flip triangle.

Zoom & eyedropper

A row of pure icons at the bottom-left: lock canvas / zoom out / 100% / zoom in / reset. The wheel zooms the canvas by default and adjusts line width while locked; the pen panel adds a preview chip, preset swatches and an eyedropper that picks colors on the canvas.

03 / Engine

Rendering pipeline

Live preview (pen thread) and the final stroke (static ink) share one algorithm and one width curve, so what you see while drawing never changes after pen-up.

STEP 01

Sample

Receives raw Stylus packets, expands coalesced events and reads the coordinates and NormalPressure of each point.

STEP 02

Stabilize

HcStab delayed fitting window: spatial-radius sampling + 1-2-1 Gaussian iterations + a trailing pen tip; the pressure series is filtered in sync.

STEP 03

Shape

The width generator computes each point's width from pen type, pressure, speed and entry taper, with exponential smoothing and jitter suppression.

STEP 04

Render

After centripetal Catmull-Rom subdivision it builds a ribbon outline filled once; translucent pens fill the whole path once to avoid darkening.

// 抖动補正核心:延迟采样 + 高斯迭代拟合 + 跟随态笔尖
alpha = hcJitterAlpha(jit);                 // 1 / (1 + 0.5 * jit),jit = 0~10(默认 3)
iter  = 2 + round(jit * 0.5);               // 高斯迭代遍数(上限 8)
radius= 8 + jit * 0.8;                      // 拟合窗口半径(上限 16px)
press = 3 + round(jit * 0.5);               // 压感序列过滤遍数
delay = round(jit * 0.4);                   // 延迟采样数(上限 4)

tip = lerp(tip, fit[count - 1 - delay], alpha);   // 笔尖天然滞后 = SAI 手感
onPenUp: emit smoothChase(tip -> realEnd);        // 抬笔补齐,收笔不缺一截

// 曲线:向心参数化 Catmull-Rom(α = 0.5),采样疏密不均也不过冲、不打圈
// 成图:沿细分点按切线法向左右偏移 → 单一闭合带状轮廓一次填充
04 / Devices

Device recognition & protocols

Automatically parses the Tablet devices reported by the system, determines brand and protocol from name keywords and VID/PID, and shows capabilities live.

Supported protocols

EMR (electromagnetic resonance), AES (active electrostatic), MPP (Microsoft pen protocol) and USI (universal stylus); passive capacitive pens and mice are grouped separately, and unrecognized devices appear only after use.

EMRAESMPPUSIPASFGR

Telemetry HUD

Shows device type, brand, protocol, output (tip / barrel button / eraser end / hover), touch count, coordinates, pressure, pressure levels, pen count, tilt and report rate in real time.

300+ HzTiltMulti-pen
05 / Performance

Optimised for high-frequency input

Every hot path is designed to do only per-frame increments, so long fast strokes never get slower.

Incremental submit

The trail layer appends with DrawingGroup; a new point is submitted as it arrives with no full redraw, avoiding display lag.

Cache reuse

Brushes and pens are cached and frozen by "color + quantised width", safe across pen threads with zero repeated allocation.

Redraw on demand

The grid and static layers redraw only on size / toggle changes; the live layer redraws only active elements.

06 / Specs

Technical specs

ItemSpec
OSWindows 10 / 11 (recommended); runs on Windows 7 SP1 and above
RuntimeMicrosoft .NET Framework 4.8
Architecturex64 (recommended) and x86, both with Debug / Release builds
Input devicesEMR pens, active capacitive pens AES / MPP / USI, passive pens, touch screens, mouse
PressureLevels follow the device; pressure gain adjustable 0–10 (default 3) and can be turned off for a constant width
Jitter correction0–10 (default 3), delayed fitting + Gaussian iterations + pen-up chase
Pen typesPencil, ballpoint, brush, highlighter (translucent single fill)
EraseErase (judged by real rendered width), single-stroke delete, lasso select; the indicator ring matches the erase range 1:1
ExportPNG bitmap (with paper and images), JSON vector ink (style + all samples)
UIDeep-sea blue theme, borderless cards, draggable toolbar and HUD, F11 fullscreen, ghost / block modes
SizeSingle file, about 2510 KB, no install
07 / Quick Start

Start writing in three steps

01

Download & run

Choose the x64 (or x86) build, download it and double-click to run — no install.

02

Choose pen & pressure

Toolbar → pen panel: pick pen type, width and color, and tune pressure gain and jitter correction as needed.

03

Write & test

Write directly; Ctrl+T opens the capacitive test and Ctrl+D the device probe to see the pressure curve and report rate.

04

Export

Ctrl+S saves as PNG or JSON; the board clears automatically for the next round.

08 / Download

Download EMR-TEST

Official site: https://www.emr-test.com · portable single file, download and run.

Version 1.5.0.0 (2026-09-16)

Windows · .NET Framework 4.8 · about 2510 KB each

64-bit (recommended)

EMR-TEST-1.5.0.0-x64.exe · 2510 KB · for 64-bit Windows Download x64 ↓

32-bit

EMR-TEST-1.5.0.0-x86.exe · 2510 KB · for 32-bit Windows Download x86 ↓

* .NET Framework 4.8 is required (usually built in on Windows 10 and above).

09 / Changelog

Changelog

Every version at a glance; the in-app Changelog window matches this list.

v1.5.0.0-09-16

Top-right panel hidden by default (click the logo to reveal); languages expanded to 36 with system auto-detect; clearer language dropdown; all toasts and tooltips localized; website localized and auto-switches by IP.

36 LanguagesAuto detectLogo panel

v1.4.0.0 · 2026-06-16

Added the language switcher and Changelog sections; jitter correction upgraded to SAI-style (0~10).

v1.3.0.0 · 2026-03-15

Image transform cursors follow direction; device probe per-item delete and restore; low-latency capacitive trails; fixed right-click menu not showing.

v1.2.0.0 · 2026-02-14

Polyline smoothing switched to centripetal Catmull-Rom; added eraser ring, brush persistence and JSON ink export.

10 / Shortcuts list

Keyboard shortcuts

Every action is reachable from the keyboard. The table below lists all shortcuts by category.

Ctrl+BPen panel
Ctrl+PInk color
Ctrl+IInsert image
Ctrl+GBackground
Ctrl+ZUndo
Ctrl+Y / Ctrl+Shift+ZRedo
Ctrl+EEraser
Ctrl+DeleteClear board
Ctrl+SSave & clear
Ctrl+MMouse mode
Ctrl+1~4Pen type (pencil / ball / brush / highlighter)
Ctrl+5~7Eraser mode (wipe / dot / lasso)
[ / ]Line width ([ / ])
Ctrl+TCapacitive test
Ctrl+DDevice probe
Ctrl+OImport image
Ctrl+Shift+GGhost / lock
F11 / FHide / restore toolbars (fullscreen)
Ctrl+Shift+DCollapse / expand toolbar
Ctrl+Shift+RReset toolbar & HUD
Ctrl+Shift+DeleteInitialize board
EscExit
Alt+S / Alt+NScreenshot / snip
Alt+G / Alt+F / Alt+D / Alt+PCustom bg / no-touch / dynamic cursor / pressure
Ctrl+Shift+M / Ctrl+Shift+FMinimize / maximize
Ctrl+Shift+[ / ] · ←/→ · DelImage ops (layer / rotate / delete)
Ctrl+Shift+1~4Pen types: fountain / sign / chalk / laser
Ctrl+Shift+SShare artwork
Ctrl+Shift+CReal-time collaboration
Ctrl+Shift+PStroke replay
Ctrl+Shift+OImport project (.json)
Ctrl+Alt+SSpeed to thickness
Ctrl+Alt+TTilt affects width
Ctrl+Alt+HChangelog
Ctrl+Alt+LLanguage switcher
Alt+1~4(Alt+Shift+1~4 reverse)Nudge pressure / speed / jitter / opacity
Ctrl+← / Ctrl+→Rotate selected image plus/minus 90 deg
Alt+CWireless screen
Alt+ZZone writing
Alt+OFeedback
Ctrl+T / Ctrl+DCapacitive test / device probe (top-right toolbar)
Esc / Ctrl+EnterIn dialogs: close / primary action (start cast · apply zones · submit)
Alt+RRecording toolbar (record / camera / teleprompter)
Ctrl+Alt+RTeleprompter (scrolling script, speed & size)
Alt+IEyedropper: pick a color on the canvas as pen color
Alt+KLock / unlock the canvas (wheel adjusts width when locked)
PageUp / PageDownPrevious / next page
Ctrl+Alt+N / Alt+DeleteNew canvas page / delete current page
Ctrl+= / Ctrl+- / Ctrl+0Zoom in / out / reset the canvas
MReplay window: sound on / off
Alt+XStop recording
Alt+MMicrophone: mute / unmute
Alt+VCamera: on / off
Alt+TRecording settings
Alt+YSave recording
Alt+QClose recording toolbar
11 / FAQ

FAQ

Does it work with devices that have no pressure?

Yes. Without pressure the app simulates natural thickness by "slower = thicker"; you can also set the pressure gain to 0 for a constant width.

What happens if jitter correction is too high?

Higher values use more delayed samples and a wider window, giving smoother lines but more lag and slower response. The default 3 is the balance point; tune between 0 and 6 to your speed and habits.

What is "Draw trails" for in the capacitive test?

When off it shows the fading dot that follows the touch point (to observe touch response); when on it draws the trail as persistent continuous lines whose width follows pressure, making broken lines, jitter and pressure linearity easy to inspect.

What is in the JSON export?

Each stroke's pen type, width, color, pressure toggle, jitter parameters and all samples (x / y / pressure) as vector data for playback, analysis or re-rendering.

Do ghost and normal modes affect each other?

No. Each mode keeps its own ink, images and undo stack, and switching never stacks them; ghost mode releases the writing layer so you can annotate desktop content directly.

12 / Feedback

Feedback

No file chosen

We will look at it as soon as we can; a screenshot plus your contact speeds things up.