About Me

I am a third-year Ph.D. student at Carnegie Mellon University, School of Computer Science, advised by Ken Koedinger and Joshua Sunshine. Prior to joining CMU, I graduated from Columbia University, where I studied Computer Science.

News

  • May 2020 I’ll join PROSE @ Microsoft Research as a Research Intern this summer!
  • Apr 2020 The first conference paper on Penrose, “Penrose: From Mathematical Notation to Beautiful Diagrams,” was accepted by SIGGRAPH 2020!
  • Mar 2020 The CHI paper won a Best Paper Honourable Mention award🏆!
  • Jan 2020 Our paper “How Domain Experts Create Conceptual Diagrams and Implications for Tool Design” was conditionally accepted by CHI 2020🏖️!
  • Oct 2019 I presented our papers at PLATEAU 2019 with Max and Anael!
  • May 2019 I finished 7th at the 2019 ACUI Collegiate Nine-ball National Championship:8ball:!

Research

I am interested in human-computer interaction, programming languages, and visualization. I am fascinated by how well-designed languages enable people to succinctly express abstract ideas in various domains, and how visual representations help people understand and reason about them. I aspire to help people understand the abstract world by designing and building powerful, useable languages and tools.

In the past few years, I have been studying how people make conceptual diagrams and building Penrose, a language-based platform for math diagramming.

Education

Ph.D. in Software Engineering, Carnegie Mellon University
B.S. in Computer Science, Columbia University, Magna cum laude
B.S. in Computer Science, Dickinson College, Summa cum laude

Publications

(*indicates equal contributions)

Penrose: From Mathematical Notation to Beautiful Diagrams

Katherine Ye, Wode Ni, Max Krieger, Dor Ma’ayan, Joshua Sunshine, Jonathan Aldrich, and Keenan Crane.
ACM Transactions on Graphics (SIGGRAPH’20), to appear.
[PDF] [BibTeX] [www] [repo]

How Domain Experts Create Conceptual Diagrams and Implications for Tool Design

Dor Ma’ayan*, Wode Ni*, Katherine Ye, Chinmay Kulkarni, and Joshua Sunshine.
Best Paper Honourable Mention
In Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems (CHI’20).
[PDF] [Talk] [BibTeX]

Defining Visual Narratives for Mathematics Declaratively

Max Krieger, Wode Ni, and Joshua Sunshine.
Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019), co-located with UIST.
[PDF] [slides]

Designing Declarative Language Tutorials: a Guided and Individualized Approach

Anael Kuperwajs Cohen, Wode Ni, and Joshua Sunshine.
Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019), co-located with UIST.
[PDF] [slides]

Substance and Style: domain-specific languages for mathematical diagrams

Wode Ni*, Katherine Ye*, Joshua Sunshine, Jonathan Aldrich, and Keenan Crane.
Domain-Specific Language Design and Implementation (DSLDI 2017), co-located with SPLASH.
[PDF] [slides]

Whiteboard Scanning Using Super-Resolution

Wode Ni.
Dickinson College Honors Theses. Paper 221.
[PDF]

Selected Projects

Animate++

Animate++ is a C++ library that lets you rapidly compose beautiful vector graphics animation. We built the library in a course with Bjarne Stroustrup. [Slides]

MPL

Matrix Processing Language (MPL) is a domain specific language that focuses on matrix computations. Using MPL, we built a simulation of Conway’s Game of Life in less than 30 lines. [repo]

Raytra

For a Computer Graphics class, I implemented a ray tracing renderer from scratch. Raytra employs Monte-Carlo ray tracing and scene-wide acceleration using BVH-tree. [repo]

Personal

My name is 倪沃德 ( ní wò dé) in Chinese. “Nimo” has been my alias since my street dancing days. My first name, often written as “Wode”, looks like a single word in English and people often pronounce it that way. If you find it hard to pronounce ( ní wò dé), try “Nimo”.

If I’m not working, I play billiards. I am a member of CMU Pool Team and play in ACUI tournaments.

I also enjoy playing Yo-yo. Here are 4 different ways to form a Green Triangle: