Computer Architecture and Programming Abstractions

Capra is a research group at Cornell in the Computer Science and Electrical and Computer Engineering departments. Our research studies abstractions and efficiency through the interaction of programming languages and computer architecture.


A Vision Mode for Efficient Image Capture

Most camera systems are optimized for photography, so they waste time and energy when they capture images for computer vision. This project designs a vision mode for cameras and their associated signal processing logic that saves energy by producing lower-quality, less-processed image data.

Exploiting Temporal Redundancy for Live Computer Vision

Vision accelerators that run on real-time video process nearly identical frames at every time step. This project introduces activation motion compensation, a technique for approximately incremental acceleration of computer vision. It works by measuring motion in the input video and translating it to motion in the intermediate results of convolutional neural networks.

Braid, a Safe Heterogeneous Language for Real-Time Graphics

Braid is a programming language for heterogeneous programming, where a single source program targets different hardware units. We have applied it to real-time graphics programming on CPU–GPU systems. Braid compiles to WebGL, so you can try it out in your browser.

Abstractions for Natural Language & Intelligent Systems

Despite rapid progress in machine learning capabilities, integrating ML into full applications remains complex and error prone. Opal is a new set of language features that help make it easier to build correct software that relies on AI, especially on natural language understanding.



PhD Students

  • Dietrich Geisler
  • Edwin Peguero
  • Mark Buckler
  • Philip Bedoukian
  • Sachille Atapattu

Undergrad & MEng

  • Irene Yoon
  • Theodore Bauer
  • Tyler Etzel
  • Yiteng Guo



We have a new style guide with hints about writing and typesetting.

We’re collecting raw photos for a new computer vision dataset. If you have an Android device, you can help out by downloading our app.

We’re looking for a postdoc to help us build a new kind of continuously reconfigurable machine (and a compiler to go with it).