https://github.com/palmshed/organictyping
keystroke dynamics analyzer.
https://github.com/palmshed/organictyping
ai biometrics privacy security
Last synced: 24 days ago
JSON representation
keystroke dynamics analyzer.
- Host: GitHub
- URL: https://github.com/palmshed/organictyping
- Owner: palmshed
- License: other
- Created: 2025-11-24T17:25:10.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-05-31T07:18:30.000Z (about 1 month ago)
- Last Synced: 2026-05-31T09:26:14.005Z (about 1 month ago)
- Topics: ai, biometrics, privacy, security
- Language: TypeScript
- Homepage:
- Size: 692 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
Organic typing signals make written text feel human and alive. Pauses, hesitations, and rhythmic bursts of keystrokes form patterns that reflect individual thinking styles, and without them, text can appear flat or artificially generated.
Similarly, phrasing variations, natural backtracking, and the flow formed by small timing irregularities help distinguish authentic human writing. They may even expose how someone organically structures ideas, pauses to reconsider, or lets thoughts unfold over time.
Recommendation
Capture fine-grained typing signals and preserve them as part of the writing profile.
## Privacy and Security
This project collects anonymized keystroke timing data for research purposes. See [PRIVACY.md](PRIVACY.md) for details on data handling, consent, and deletion rights. We prioritize user privacy by not storing raw keystroke sequences and providing opt-out mechanisms.
Example
In this example, the collector records each keypress with timing information. The raw data includes pauses, bursts of rapid typing, and small corrections. Normalizing these signals produces a rhythm vector that reflects the writer’s natural flow.
```ts
const event = {
key: 't',
down: 1052,
up: 1120,
pauseBefore: 320,
};
```
A more subtle pattern appears when multiple short pauses combine with minor backspaces. This sequence reflects hesitation and re-phrasing, shaping a richer organic signature:
```ts
[
{ key: 'h', pauseBefore: 210 },
{ key: 'e', pauseBefore: 95 },
{ key: 'l', pauseBefore: 82 },
{ key: 'l', pauseBefore: 400 },
{ key: 'Backspace' },
{ key: 'l', pauseBefore: 180 },
{ key: 'o', pauseBefore: 70 },
];
```
These timing signals become inputs to an encoder, which embeds them into a latent representation. The vector allows a verifier to distinguish human typing from AI-generated text, and it enables a generator to reconstruct the writer’s natural cadence.
A similar process occurs when capturing long-form text. Extended pauses between sentences, shifts in pacing during complex thoughts, and recurring phrasing habits all contribute to a stable organic profile that evolves over time.
References
Organic Typing: Capturing Human Rhythm.
Keystroke Dynamics Research.
Timing-Based Behavioral Biometrics.
# Test comment