Skip to content

HysMagus/strabo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Strombo

A macOS tool that turns your whole screen into a red/green (anaglyph) anti-suppression field for binocular vision therapy. Wearing red/green glasses, you can use your computer normally while the screen is re-rendered so that each eye receives a different slice of the image — encouraging both eyes to stay active together.

Warning

Do not use this as medical treatment without first talking to an eye-care professional (an optometrist / behavioral optometrist / ophthalmologist). Binocular vision conditions vary a lot from person to person, and the wrong exercise can be useless or counterproductive (e.g. it can aggravate double vision in people who don't suppress). Stop immediately if you get persistent double vision, headaches, eye strain, or nausea.

Note

This is an early MVP and it was vibe coded. Treat it as an experiment, not a polished or validated medical device. There are no guarantees of correctness, safety, or effectiveness.

Goals

  • Convert arbitrary, whole-screen content into an anaglyph-ready format in real time, so therapy isn't limited to printed cards or a single dedicated app.
  • Make it easy to see, in the moment, whether both eyes are being used together.
  • Provide live, tunable controls (stripe width, per-eye brightness balance) so the difficulty can be matched to the viewer.
  • Stay out of the way: the real screen underneath remains interactive.

The science it draws on

  • Anti-suppression therapy. In some binocular vision disorders the brain suppresses input from one eye. Red/green ("anaglyph") glasses let a display send different content to each eye, which can be used to make suppression noticeable and to encourage simultaneous use of both eyes.
  • Channel separation. With a red filter over one eye and a green filter over the other, pure-red content is bright to the red-filtered eye and near-black to the green-filtered eye (and vice versa). This lets one screen present two different images at once.
  • Dichoptic viewing / contrast balancing. Research on presenting separate, contrast-adjusted images to each eye (dichoptic training) has shown reductions in interocular suppression and gains in binocular function.
  • Whole-field striping (HART-chart style). Instead of trying to recover a stereo pair from flat content (impossible), Strombo spatially interleaves the same grayscale image into alternating red and green vertical stripes. Each eye sees only its stripes, so reading the screen as a whole requires keeping both eyes engaged — and if one eye is suppressed, its stripes drop out and the image visibly breaks up. This mirrors the classic red/green striped reading charts and "TV trainer" filters used in clinics.

None of the above is a substitute for a clinician's assessment and a plan tailored to an individual.

How it works (technical)

macOS overlays can only add pixels on top of other apps — they can't desaturate or per-eye-process the content underneath. So Strombo uses a capture + reprocess pipeline:

  1. ScreenCaptureKit captures the main display in real time (excluding Strombo's own windows to avoid feedback).
  2. A Metal shader converts each frame to grayscale, then splits it into alternating red/green vertical stripes with adjustable per-eye brightness.
  3. The result is drawn in a fullscreen, pixel-aligned, click-through window, so the apps beneath stay fully interactive.

Built with Swift + AppKit + Metal + ScreenCaptureKit via Swift Package Manager (no Xcode required).

Build & run

bash build.sh
open Strombo.app

First launch prompts for Screen Recording permission: System Settings ▸ Privacy & Security ▸ Screen Recording ▸ enable Strombo, then reopen the app (macOS often needs one relaunch after granting).

Controls

A floating Strombo panel and an 👁 menu-bar icon:

  • Stripe width — pixels per stripe. Narrow it until the screen is only fully legible with both eyes engaged.
  • Balance (dim red ⟷ dim green) — adjust relative per-eye brightness.
  • Stripes on — uncheck for a plain balanced-grayscale mode.
  • Pause / Resume — hide/show the overlay (also ⌘P).
  • Quit — panel button, menu-bar icon, or ⌘Q.

Known limits

  • DRM-protected video (e.g. some streaming apps) captures as black — this is an intentional macOS restriction.
  • Slight latency versus the real screen.
  • Captures the main display only.

License

Provided as-is, with no warranty. Not a medical device.

About

A experiment to see if I could change my screen to help improve my vision

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors