reign tools,
no AI.

combined text and image manipulation built from scratch. no ai. everything runs entirely in your browser. with math and javascript. still a bit rough in places.

  • hobby project
  • client-side only
  • still actively tweaked
  • very large images can lag
  • zero ai / ml
  • zero dependencies
  • formula-based
  • pure javascript
  • pragmatic over pretty
  • a few rough edges are intentional
  • no data stored
  • no accounts
  • no uploads, no tracking
  • runs entirely in your browser
  • use at your own risk

stats

chars, words, sentences, paragraphs, reading and speaking time, readability scores

fleschf-k gradegunning fogwpm

case converter

transform text between seven common case formats instantly

UPPERlowerTitlesnake_casecamelCase

word frequency

see how often each word appears, with optional stop-word filtering

stop-wordsbar charttop N

transform

reverse, sort, and deduplicate text with per-line and per-word control

reversesortdedupe

unicode inspector

highlight emojis, special symbols, zero-width chars, and non-ASCII characters

emojizero-widthnon-ascii

subtitle timing

check character-per-line and chars-per-second limits, flags overflow cues

CPLCPSoverflow

dialogue analyzer

break down scripts by speaker: line counts, word counts, speaking time

speakersspeaking timeavg sentence

diff checker

compare old/new text with alignment-aware highlights for only the changed parts

old/newdetectinline diff

liner

extract line art from photos via edge detection and threshold controls

edge detectthresholdtransparent bg

stencil

reduce images into bold poster-style color bands with optional edges

posterizecontrastsoftness

recolor

map all pixels to curated or custom palettes

palette mapcustom paletteluma mode

screentone

convert images to halftone dots or line print patterns

halftonedot/lineangle

inkify

create pen-and-ink style rendering with crosshatch or flat shading

ink linescrosshatchflat shade

2d-ifier

flatten and outline photos into illustrated 2d outputs

sobelposterizeflatten

pixel-ifier

crush images into chunky pixels with retro palette snapping

pixel artretropalette

background remover

non-ai cutout tool with magic delete, brush erase/restore, and mask controls

magic wandundoselect +/-

Text Stats

Counts, readability scores, reading and speaking time. All in one pass.

Reading WPM 238
Speaking WPM 130
0chars
0no spaces
0words
0sentences
0paragraphs
0lines
--reading time
--speaking time
Flesch Ease --
F-K Grade --
Gunning Fog --
Paste or type in the right panel. All stats update live.

Case Converter

Transform text between common case formats instantly.

Output updates as you type. Swap source and output with the arrow button in the divider.

Word Frequency

See how often each word appears. Toggle stop-words to filter noise.

Show top N 25
Unique words0
Total words0
Shown0
no text yet

Text Transform

Reverse, sort, and deduplicate text. Per-line or per-word control.

select a mode

Unicode Inspector

Highlight non-ASCII, emojis, special symbols, and zero-width characters.

Emojis0
Symbols0
Zero-width0
Non-ASCII0
emoji symbol zero-width non-ascii
output will appear here

Subtitle Timing

Check character limits per line and reading speed for subtitles.

Chars per line (CPL) 42
Chars per second (CPS) 17
Total lines0
Overflow CPL0
Overflow CPS0
Longest line0
Each line is a subtitle cue. Flagged lines are highlighted in the panel. Duration = chars / CPS.
results appear here

Dialogue Analyzer

Count lines, words, and avg sentence length per speaker. Format: Speaker: line

Pace normal
slow = 100 wpm   normal = 130   fast = 170
Speakers found0
Total lines0
Unparsed lines0
Lines matching Name: text are parsed. Everything else counts as unparsed.
speaker breakdown appears here

Diff Checker

Paste old and new text, then detect. Similar lines are aligned, and only changed spans are highlighted.

1) paste old + new text 2) click detect 3) scan old/new panes side-by-side. delete highlights are red, add highlights are green.
Changed lines0
Added tokens0
Deleted tokens0
tip: use ctrl/cmd + enter to run detect quickly.
old (deletions in red)
new (additions in green)

liner

extract clean line art from photos or drawings. grayscale -> edge detect -> threshold.

threshold120
line thickness1
pre-blur1

tip: raise pre-blur to reduce noise · lower threshold for finer detail · use transparent bg to overlay

no image loaded

stencil

reduce photos to bold flat color bands. vector-poster vibes without any pixelation.

color bands6
contrast1.10
softness0.00

tip: low bands (3-5) + strong edges = silkscreen · high bands = photo poster · softness blends band edges

no image loaded

recolor

map every pixel to the closest color in a palette. no pixelation, pure remapping.

tip: luma mode preserves perceived contrast · custom: upload any image to sample its palette

no image loaded

screentone

convert images into halftone dot or line patterns. print, comic, and poster aesthetics.

cell size8
angle °45
contrast1.00

tip: cell 6 + dot + 45° = classic newsprint · line mode at 0° = comic screentone

no image loaded

inkify

convert photos into inked illustrations with extracted line art and tonal shading.

line weight1
edge strength1.20
shadow clip20

tip: crosshatch gives a pen-sketch feel · flat shade works great for portraits · shadow clip removes deep blacks

no image loaded

2d-ifier

flatten, outline, and posterize photos into a clean illustrated look.

edge strength1.20
flatten0.45
posterize8
contrast1.10

tip: edge ~ 1-1.5 · flatten ~ 0.4-0.6 · poster ~ 6-10

no image loaded

pixel-ifier

crush images into chunky pixels with retro palette snapping.

pixel size8
color count16

tip: pixel size 4-16 gives a nice retro feel · pair nes with size 6

no image loaded

background remover

fully non-ai mask editing. magic delete + manual brush fixes.

magic tolerance38
brush size26
kept pixels0%
removed pixels0

magic delete = click background. brush erase/restore for cleanup. select more/less grows or tightens the mask edge.

no image loaded