Research


Exploration and Versioning in Live Coding

Live coding is a performance practice where one or more performers continuously run and modify code to create music or visuals. In this project, we seek to better understand how live coding musicians keep track of the evolving state of their programs and how that differs in performance vs. practice. To explore this idea, we developed an IDE extension called SHARP which helps live coders keep track of their program versions as they explore new sounds and new code.

Publications

SHARP: Exploring Version Control Systems in Live Coding Music [link]
Daniel Manesh, Douglas Bowman Jr., Sang Won Lee
C&C 2024, Full Paper
🏅Honorable Mention for Best Paper🏅

Branch [video demo]
Daniel Manesh, Douglas Bowman Jr., Sang Won Lee
NIME 2023, Music Performance

SHARP: Supporting Exploration and Rapid State Navigation in Live Coding Music
Douglas Bowman Jr., Daniel Manesh, Sang Won Lee
NIME 2023, Short Paper


Beyond TAP: Scripting with Triggers and Actions

Existing Trigger-Action Programming systems such as IFTTT allow users to define simple if-then programs consisting of a "Trigger" and "Action". For example, a program could be "If it starts to rain (Trigger), then change my smart light bulb color to blue (Action)". In this project, we explore what happens if we keep the convenient triger and action abstractions of TAP systems, but allow connecting them using short snippets of JavaScript code. This affords users the full power of a textual programming language, but still allows them to outsource tricky API integrations to a simple UI.

Publications

Beyond TAP: Piggybacking on IFTTT to Connect Triggers and Actions with JavaScript [link]
Daniel Manesh, Marx Wang, Ruipu Hu, Sang Won Lee
VL/HCC 2024, Full Paper

iThem: Programming Internet of Things Beyond Trigger-Action Pattern [link]
Marx Wang, Daniel Manesh, Ruipu Hu, Sang Won Lee
UIST 2022, Poster


Octave: Helping Construction Students Analyze GPS Data

Octave (Observable Connections between Tables, Algorithms, and Visualization in an EUP) is an end-user programming environment that allows for the visualization and analysis of spatiotemporal trajectory data. It's designed to help construction students understand GPS data gathered from the field. Octave presents data both as a table and as a visualization and provides a small and simple set of simple computational primitives. The views of the data are tightly connected to provide a responsive and intuitive environment. For example, hovering over a table row will highlight the corresponding data point(s) in the visualization.

Publications

Octave: An End-User Programming Environment for Analysis of Spatiotemporal Data for Construction Students [link]
Daniel Manesh, Andy Luu, Mohammad Khalid, Jiangyue Li, Chinedu Okonkwo, Abiola Akanmu, Ibukun Awolusi, Homero Murzi, Sang Won Lee
VL/HCC 2023, Full Paper


Exquisite Score

Exquisite Score was a website that facillitated collaborative musical composition using the exquisite corpse paradigm. Users composed successive sections of a piece in sequence, but each user could only see the very end of what was previously written. The website is no longer up and running, but I'd love to work on it more in the future if I get the chance.

Publications

Exquisite Score: A System for Collaborative Musical Composition [link]
Daniel Manesh, Eran Egozy
NIME 2017, Short Paper

Exquisite Score: A System for Collaborative Musical Composition [link]
Daniel Manesh
MIT, Master's Thesis