E.B.C. AN ONGOING EXPERIMENT
VANDERBILT UNIVERSITY
COMPUTING · AI · SYSTEMS
BASED IN NASHVILLE, TN
OPEN TO STRANGE PROBLEMS

ETHANB. CHEN.

↓ FOLLOW THE SIGNAL

I build software around intelligence,
systems, and things I can’t leave alone.

SELECTED WORK
2026 — ONGOING
01 — SELECTED WORKFOUR QUESTIONS, TAKEN FURTHER

I like problems
with a little noise.

A report. A recording. A screen.
A feeling that won’t fit in a box.

Different inputs. The same curiosity:
what can software make of this?

The Great Prompt-Off.

A better prompt needs
a better test.

A live challenge for extracting structured findings from synthetic knee MRI reports. The interesting part isn’t asking a model. It’s deciding what a correct answer means.

Explore the system

NEXT.JS / TYPESCRIPT / POSTGRES

THE EVALUATION PATH
  1. 01 / INPUTSynthetic reportNon-PHI material
  2. 02 / STRATEGYParticipant promptHow to extract the evidence
  3. 03 / CONTRACTSix fields. Four labels.A strict, shared output schema
  4. 04 / EVALUATIONExplainable scoringPublic practice → hidden final set

SMALL DISTINCTIONS MATTER

not_reported is not equivalent to absent

Choose a label. The contract preserves the distinction.

Silence is not a negative finding. The report does not supply the evidence needed to call it present or absent.

CONTRACT SPECIMEN · NO REPORT OR MODEL RUN
THE OUTPUT IS ONLY AS USEFUL AS THE CONTRACT.

Clarity

Good assistance
starts with
being there.

THREE WAYS INTO THE CONVERSATION

Screen context enters when you request assistance. Capture depends on macOS permissions and a model that accepts images.

Clarity’s current empty-state interface, rendered from its application source: Ready when you are, assistance actions, and a question composer.
CURRENT INTERFACE / SOURCE RENDERAN OVERLAY, NOT ANOTHER DESTINATION

Screen assistance, separate conversation channels, and your choice of AI provider. Built around the unglamorous parts, too: capture permissions, audio recovery, and local or cloud transcription.

See Clarity ELECTRON / MACOS / WHISPER.CPP

What does
the music know?

PIANO MIR

A score says what should happen.
A recording says what did.

I built a Rust-first prototype to bring the two into alignment.

THE COMPLETE MINUET / 32 MEASURESCHRISTIAN PETZOLD · BWV ANH. 114

Hear the whole piece.
Follow every note.

PLAY · SEEK · SCROLL BACK
BAR 01 / 32G3 · B3 · D5TAP A NOTE TO JUMP ↗

THE SCORE FOLLOWS THE AUDIO. DRAG, TAP A NOTE, OR SEEK BACK TO REWIND. SYNTHESIZED FROM THE PROJECT’S FULL SOURCE MIDI.

PIANO MIR CAPTURE / FIRST 12.3 SECONDS

CAPTURED EXCERPT / MIDI & AUDIO CHROMASCORE ↔ AUDIO
0 SEC4812.3 SEC
SYNTHESIZED AUDIO · 12.3 SEC

Known score. Real analysis. Captured analysis of synthesized audio checks agreement with a known score; the report describes score-aligned verification, not a performance grade.

Inside Piano MIR READ THE CAPTURE REPORT ↓CAPTURE PROVENANCE ↗
AND SOMETIMES,
THE INPUT IS A FEELING.

Not everything
needs a score.

avoid.love project artwork: a scarlet poppy against the evening sky.Enter the story

avoid.love

A story told through scroll, physical objects, and continuous scenes. An experiment in making a browser feel like something you can hold.

HOW IT’S MADE ↗
THE SIDE CHANNELSSTILL FOLLOWING THE QUESTION

Meanwhile,
in the lab.

Some useful things.
Some unreasonable constraints.
A few ideas that got out of hand.

01

WinCodex

OLD MACHINE. NEW TOOLS.

A Windows 7 client bridges to a modern coding agent on Linux. Snapshots go out; changes return only after conflict checks. An independent project, not an official OpenAI product.

WINDOWS 7
LOCAL SOURCE
LINUX
REMOTE MIRROR
EXPLORE WINCODEX ↗
02

FunChessEngine

ONE MORE MOVE.

An original classical chess engine that grew into a local workstation: move search, evaluation, PGN libraries, analysis, tournaments, and engine testing.

EXPLORE THE ENGINE LAB ↗WATCH THE RECORDED SELF-PLAY ↗
03

TowerLogic

PIXELS BECOME A POSITION.

An experimental game-state pipeline: screenshot → computer vision → normalized state → policy decision. PyTorch, ONNX, template matching, and emulator control. Independent research, not an official Supercell project.

EXPLORE TOWERLOGIC ↗
04

Mosaic

MAKE THE WHOLE THING WORK.

An image discovery and collection product with privacy, collaboration, and a freeform Canvas. Built for the Change++ challenge. I chose a cohesive save → organize → share flow over adding technology just to lengthen the stack.

EXPLORE MOSAIC ↗
05

Kitco Scraper

LESS COPYING. MORE DOING.

Precious-metals pricing collected on a schedule and exported to CSV. Built for Carat Coin to replace repetitive manual price tracking with a reusable reporting workflow.

EXPLORE THE SCRAPER ↗
06

Nitro Notes

CAPTURE IT. KEEP IT LOCAL.

An offline desktop notebook with synchronized notes and tasks, search, and portable exports. No account or cloud service required.

EXPLORE NITRO NOTES ↗
MORE AT THE SOURCE
02 — THE PERSON AT THE OTHER ENDBEYOND THE REPOSITORY

Curiosity is
the constant.

I’m Ethan, a Vanderbilt undergraduate in Nashville. I’m interested in intelligence—how we build it, how we test it, and where it can actually help.

That leads me toward AI and healthcare, computer vision, music, and the occasional very old computer. I tend to keep going after the original question is answered.

Outside software: piano, chess, and clarinet.

EXPECTED MAY 2030

Vanderbilt University, School of Engineering
B.E. in Computer Science, Minor in Data Science

2024-Present

Wifi Concierge · Founder & Web Developer
Founded a community technology initiative serving 70+ individuals and families; built and maintained its website.

Summer 2025

Cleveland Clinic · Radiology Department Intern
Worked in an AI-focused radiology environment with exposure to machine learning, image processing, and healthcare AI.

Summer 2025

PCs for People · Technology Department Intern
Reconditioned and configured computers for affordable resale to underserved families.

Summer 2024

Hyland Software · R&D Intern
Evaluated Hy-Tech Club course content and redesigned the program homepage.

A NOTE TO SELF

Follow the interesting part.
Then make it work.