I use programming language theory to explore / explain / engineer compositional UI, trying to make engagement with algebraic abstractions more fluid, tangible, and fun
Can we make GUIs that compose like languages?
Create languages made of GUIs?
Can malleable semantic interfaces help make code a thing you can dip you feet in?
Language servers can provide semantic contextualization and guidance to inform
helpful editing affordances for both people and language models:
LLMs need IDEs
Math needs juice.
Working on tactile affordances to support the development of
mechanical sympathy in the manipulation of materials with mechanized semantics
- Oct 2024
-
In LA for SPLASH 2024, including HATRA,
LIVE, Onward!,
and the Ink & Switch Unconf;
spoke about Typed Holes for LLMs: Recorded Talk, Slides - Sep 2024
-
In Vancouver enroute to Gradient with Marcel,
Elliot, and Ivan
(and surprise guests Devine and PVH) - Aug 2024
-
Our paper Statically Contextualizing Large Language Models with Typed Holes
(Andrew Blinn, Xi Liang, June Hyung Kim, Cyrus Omar) accepted at OOPSLA 2024 - May 2024
- On the program committees for LIVE, HARTA, and Onward! at SPLASH 2024
- Jan 2024
-
Distinguished paper award Total Type Error Localization and Recovery with Holes
(POPL2024)
(Eric Zhao, Raef Maroof, Anand Dukkipati, Andrew Blinn, Zoe Pan, Cyrus Omar) - Jan 2024
- Our paper Toward a Live, Rich, Composable, and Collaborative Planetary Compute Engine accepted at PROPL @ POPL24 (Alexander Bandukwala, Andrew Blinn, Cyrus Omar)
- Oct 2023
-
Our paper Gradual Structure Editing with Obligations accepted at VL/HCC23
(David Moon, Andrew Blinn, Cyrus Omar) - Oct 2023
- Spoke about type-directed prompt construction for LLM code completion
at the 2023 Midwest PL Summit: Slides - Sep 2023
-
Joined the Train Jam on the Empire Builder line from Seattle to St. Louis
for the final Strange Loop and the first Local First Unconf - May 2023
- Mastered (Computer) Science at the University of Michigan. Presented work on formalizing programming assistants, passed preliminary exam, and advanced to PhD candidacy
- Apr 2023
-
In Toronto for Causal Islands and then Galiano via Vancouver to work on nool
at Gradient Retreat (feat. Omar, Max, and Ian) - Sep 2022
-
Our paper Tylr - A Tiny Tile-based Structure Editor accepted to TyDe workshop
(David Moon, Andrew Blinn, Cyrus Omar) - Sep 2022
- Spoke about programming assistant architecture at VLHCC22 in Rome
- May 2022
- An Integrative Human-Centered Architecture for Interactive Programming Assistants accepted at VLHCC22 (Andrew Blinn, David Moon, Eric Griffis, Cyrus Omar)
- Oct 2021
- Student volunteering at SPLASH/OOPSLA in Chicago; attended HATRA and LIVE workshops
- Jun 2021
-
Our paper Filling typed holes with live GUIs accepted at
PLDI21
(Cyrus Omar, David Moon, Andrew Blinn, Ian Voysey, Nick Collins, Ravi Chugh) - Feb 2021
-
In Vancouver enroute to work on furl at Gradient Retreat
(feat. Omar, Toph, Horace, and Robert) - July 2019
-
Attended Racket's How to Design Languages Summer School
and presented
Fructure at RacketCon 2019: Talk, Slides - May 2019
- Started work at TodaQ Toronto
- May 2019
- Graduated the University of Toronto with an HBSc in Computer Science & Mathematics
- April 2019
- Attended Clojure North in Toronto
- Oct 2018
- St. Louis triple header: Attending ICFP2018, Strange Loop 2018, RacketCon 2018
- July 2018
- At the Oregon Programming Languages Summer School in Eugene
Here's some other things i've worked on:
fructure
a structured interaction engine
fructure is a prototype for an extensible structured editing engine, built around a ui for composing term-rewriting edit actions. editing abstractions like cursors and code-folding are reinterpreted as syntactic scaffolding in a meta-grammar of syntactic affordances
context patterns
capture contexts with racket/match
a library of custom pattern combinators for racket/match which generalize macro-by-example ellipses patterns. these use composable continuations to descend into arbitrary nested structures and capture both matches and their surrounding contexts
depthop
an sdf raymarcher in c++
a simple cpu raymarcher parallelized with open MP, implementing constructive solid geometry, soft shadows, ambient occlusion, blinn-phong shading, and perlin noise
figuring out new ways for you to fight with your editor, hybridizing hazel with the smyth program synthesizer
joined cyrus omar's fp lab as a phd student at the u of m, helping ruin programming forever
ended two years owning ownership at todaq with a project on making interfaces for reifying fake digital stuff