Jonathan Bachrach
Assistant Adjunct Professor

UC Berkeley
515 Soda Hall
Berkeley, CA 94710

617-549-0578
jrb at pobox dot com
http://www.jbot.org

Focus

Arguably the vast majority of computing is already happening in places other than in our appliances, cars, phones, data centers, or desktops. It is happening faithfully and methodically within places near and dear to our heart: our physical and biological worlds. To make computing maximally relevant and impactful, we need to harness this computing by not only programming these existing systems but also by embedding computing matter within our world and bodies. By first learning from existing natural computing systems, then expanding the boundaries of computer science to encompass matter that computes, we can open up whole new application areas with the potential for significant societal impact. I am working on algorithms, languages, tools, computer architectures, and substrates for computing matters. I am principally interested in engineering bottom-up fabrication systems and smart robotic structures.

Education

Ph.D., Computer Science,
University of Massachusetts, Amherst (1992)
Thesis Topic: Connectionist Modeling and Control of Finite State Environments
Thesis Advisers: Andrew Barto and David Rumelhart

M.S., Computer Science,
University of Massachusetts, Amherst (1989)
Thesis Topic: Learning to Represent State
Thesis Advisers: Andrew Barto and Richard Sutton

B.S., Computer Engineering and Cognitive Science,
University of California, San Diego (1985)
Thesis Topic: A Boltzmann Machine Solution to the Waltz Labeling Problem
Thesis Adviser: David Rumelhart

Work Experience

Assistant Adjunct Professor, UC Berkeley (2012 - present)
Designing hardware construction languages for specifying highly parameterized hardware generators used in design exploration using fast emulation (RAMP) with John Wawrznek and Krste Asanovic. The specific target is lowering power requirements for exascale computing. Designing a range of ways to speed up FPGA development time using novel FPGA hardware and software. Exploring novel material compatible computing for embedding computing within materials and world at large. Advising students and teaching seminars.

Visiting Research Engineer, UC Berkeley (2010 - 2012)
Designing hardware construction languages for specifying highly parameterized hardware generators used in design exploration using fast emulation (RAMP) with John Wawrznek and Krste Asanovic.

Senior Research Scientist, Co-founder Other Lab (2009 - 2012)
Developing pneumatic and digital fluidic robotic design / simulation tools under new DARPA program towards revolutionizing how we design and make robots in a roll to roll fashion. Continuing work on programmable matter languages, workflows, and runtimes for DARPA funded MIT CBA / Media Lab programmable matter team. Developing distributed robot motion language for use on the chain robot and other MIT CBA projects. Continuing developement of future fabrication software for creation of 3D shapes made out of 2D parts. Developing languages and algorithms for architecture, layout and arithmetic in Reconfigurable Asynchronous Logic Automata (RALA). Managing business and research opportunities and relationships with universities, funders, and clients. Ongoing advising and managing of students on programmable matter and RALA projects.

Principal Research Scientist, Makani Power (2008 - 2009)
Explored ideas in programmable matter, spatial computing and future fabrication. Developed ideas and algorithms for end-to-end CAD/CAM software tool chain for DARPA funded MIT CBA / Media Lab programmable matter team. The platform is a mechanical protein folding robot that fills space. Developed future fabrication software for creation of origami style and stacked laminates construction of shapes. Developed coded mechanical protein folding toy. Advised and managed MIT students on programmable matter and RALA projects.

Research Scientist, MIT AI Lab (2000 - 2008)
Explored the design and implementation of next generation programming languages and algorithms to support spatial computers and space time programming. Advising graduate and undergraduate students. Research includes the creation of new spatial computing platforms, distributed algorithms, adaptive methods, abstractions, and programming languages. Areas include modular robotics, swarm robotics, kinetic structures, sensor networks, programmable matter, and FPGA’s. Led MIT DARPA NEST program in sensor networks where we developed new languages, localization, threat avoidance, and target tracking software. Also help manage dynamic languages group where we explored the design and implementation of next generation programming languages to support intelligent, adaptive, complex software systems.

President and Cofounder of Functional Objects Inc (1999 - 2000)
Commercializing an advanced implementation of the object-oriented dynamic programming language called Dylan.

Principal Software Engineer and Engineering Manager, Harlequin Inc (1994 - 1999)
Assisted (Apple) in the design of a general-purpose object-oriented dynamic language called Dylan.
Wrote a large part of the Dylan compiler, runtime, and libraries. Designed and implemented class-based and orthogonal persistence based object-oriented databases, one of which is used by the Dylan compiler for separate compilation. Wrote performance monitoring, analysis, and visualization tools.
Coordinated Dylan development activities including the planning of task schedules, the supervision of developers, and the coordination and running of meetings.

Researcher, IRCAM (1994 - 1996)
Assisted in development of real-time Max/FTS with Miller Puckette and David Zicarelli and assisted composer Phillipe Manoury on opera. Researched alternative text based programming languages for real-time music creation.

Postdoctoral Fellow, ICSI Berkeley (1992)
Participated in the development of a neural network supercomputer. My job was to advise the hardware designers as to the requirements of the popular connectionist algorithms and architectures. This was accomplished through rigorous analysis of algorithms and simulation studies. Participated in the design of a new object-oriented language called Sather.

Visiting Scholar, Stanford Univ. (1991 - 1992)
Developed a neural network simulator to be used by David Rumelhart and his neural network research group. Developed image-processing code for OBVIUS, an interactive image processing system.

Research Assistant, University of Mass. (1985 - 1991)
Designed and analyzed connectionist learning algorithms under the supervision of Andrew Barto.

Visiting Graduate Student, Stanford Univ. (1989 - 1991)
Developed connectionist learning architectures and algorithms for navigation under the supervision of David Rumelhart.

Summer Research Student, GTE Labs (1987)
Developed a theory for learning to represent state under the supervision of Richard Sutton.

Summer Research Student, HP Labs (1984)
Assisted in the analysis of graphics algorithms to be used to guide the design of a graphics architecture for the PA-RISC.

Research Assistant, Harold Cohen, UCSD (1980 - 1985)
Developed plotter software, vector based shading and scribbling, and rule based programming for expert drawing system.

Refereed Journal Papers

K. Cheung, E. Demaine, J. Bachrach, S. Griffith. Programmable Assembly with Universally Foldable Strings (Moteins). IEEE Transactions on Robotics, June 2011.

J. Bachrach, J. Beal, J. McLurkin. Composable Continuous-Space Programs for Robotic Swarms. Neural Computing and Applications Journal, Volume 19, Issue 6, September 2010.

J. Beal, J. Bachrach. Infrastructure for Engineered Emergence on Sensor/Actuator Networks. IEEE Intelligent Systems, March/April, 2006

J. Bachrach, R. Nagpal, M. Salib, H. Shrobe. Experimental Results and Theoretical Analysis of a Self-organizing Global Coordinate System for Ad Hoc Sensor Networks. Telecommunications System Journal, Special Issue on Wireless Sensor Networks, Kluwer Academic Publishing 2004.

M. Mozer, J. Bachrach. Discovering the structure of a reactive environment by exploration. Machine Learning Journal, 1991.

M. Mozer, J. Bachrach. Discovering the structure of a reactive environment by exploration. Neural Computation, 2(4), 1990.

Refereed Conference Papers

A. Buchan, J. Bachrach, R. Fearing. Towards a Minimal Architecture for a Printable, Modular, and Robust Sensing Skin. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) 2012.

J. Bachrach, H. Vo, B. Richards, R. Avizienis, J. Wawrzynek, K. Asanovic. Chisel: Constructing Hardware in a Scala Embedded Language. Design Automation Conference (DAC) 2012.

J. Perkins, S. Kim, S. Larsen, S. Amarasinghe, J. Bachrach, M. Carbin, C. Pacheco, F. Sherwood, S. Sidiroglou, G. Sullivan, W. Wong, Y. Zibin, M. Ernst, M. Rinard. Automatically Patching Errors in Deployed Software. Symposium on Operating Systems Principles (SOSP) 2009.

J. Beal, J. Bachrach, D. Vickery, M. Tobenkin. Fast Self-Stabilization for Gradients. International Conference on Distributed Computing in Sensor Systems (DCOSS) 2009, June 2009.

N. Correll, D. Rus, J. Bachrach, D. Vickery. Ad-hoc Wireless Network Coverage with Networked Robots that Can not Localize. IEEE International Conference on Robotics and Automation (ICRA) 2009, May 2009.

J. Beal, N. Correll, L. Urbina, J. Bachrach. Behavior Modes for Randomized Robotic Coverage. Second International Conference on Robot Communication and Coordination 2009, April 2009.

J. Bachrach, D. Qumsiyeh, M. Tobenkin. Hardware Scripting in Gel. IEEE Symposium on Field-Programmable Custom Computing (FCCM), April 2008.

J. Beal, J. Bachrach. Cells Are Plausible Targets for High-Level Spatial Languages. Spatial Computing Workshop, October 2008.

J. Bachrach, J. McLurkin, A. Grue. A Language for Programming Multi-Robot Systems Using the Amorphous Medium Abstraction. International Conference on Autonomous Agents and Multiagent Systems (AAMAS), May 2008

J. Beal, J. Bachrach, D. Vickery, M. Tobenkin. Fast Self-Healing Gradients. ACM Symposium on Applied Computing, March 2008.

J. Bachrach, J. Beal, J. Horowitz, D. Qumsiyeh. Empirical Characterization of Discretization Error in Gradient-based Algorithms. IEEE International Conference on Self-Adaptive and Self-Organizing Systems (SASO), October 2008

J. Bachrach, J. Beal. Continuous Space-Time Semantics for Adaptive Program Execution. IEEE International Conference on Self-Adaptive and Self-Organizing Systems (SASO), July 2007

C. Taylor, A. Rahimi, J. Bachrach, H. Shrobe, A. Grue. Simultaneous Localization, Calibration, and Tracking in a Sensor Network. ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN), April, 2006

R. Nagpal, H. Shrobe, J. Bachrach. Organizing a Global Coordinate System from Local Information on an Ad Hoc Sensor. ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN), 2003, Palo Alto.

J. Bachrach, K. Playford. The Java Syntactic Extender. In ACM Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2001, Tampa Florida.

J. Bachrach. A connectionist architecture for navigation. In David S. Touretzky, editor, Advances in Neural Information Processing Systems 3, San Mateo, CA, 1991. IEEE Conference on Neural Information Processing Systems Natural and Synthetic, Morgan Kaufmann Publishers.

M. Mozer, J. Bachrach. Discovering the structure of a reactive environment by exploration. In David S. Touretzky, editor, Advances in Neural Information Processing Systems 2, San Mateo, CA, 1990. IEEE Conference on Neural Information Processing Systems Natural and Synthetic.

J. Bachrach. Learning to represent state. In ICNN Conference Proceedings, page 288. International Neural Network Society, Pergamon Press, September 1988.

Book Chapters

P. Schmidt-Nielsen, K. Chen, J. Bachrach, S. Greenwald, F. Green and N. Gershenfeld. Cryptography with Asynchronous Logic Automata to appear in "Springer Lecture Notes in Computer Science", 2011.

J. Bachrach, C. Taylor. Localization in Sensor Networks. in "Handbook of Sensor Networks" book, edited by Ivan Stojmenovic, Wiley 2005.

J. Bachrach, M. Mozer. Connectionist modeling and controlling of finite state systems in the absence of complete state information. In Yves Chauvin and David E. Rumelhart, editors, Back-propagation: Theory, Architectures and Applications. Erlbaum, Hillsdale, N.J.

Other Papers

J. Bachrach, J. Beal. Building Spatial Computers. MIT CSAIL TR 2007-0017, March 2007

J. Bachrach, J. Beal. Programming a Sensor Network as an Amorphous Medium . MIT CSAIL TR 2006-069, June 2006

C. Taylor, A. Rahimi, J. Bachrach, H. Shrobe. Simultaneous Tracking and Localization in Sensor Networks. MIT AI Memo AIM-2005-016, April 26, 2005

J. Bachrach. Connectionist learning in backgammon. In Proceedings of the Connectionist Models Summer School, Pittsburgh, PA, June 1986. Carnegie Mellon University.

Talks

Sketching in Hardware 2012, Portland (2012-07-21),
Revisiting Design + Fabrication Complexity

Kestrel Institute Retreat 2012, Lake Tahoe (2012-02-04),
Computing Matters

New Directions in Software Technology 2011, St John (2011-12-08),
Shape Compilers

Berkeley EECS Joint Colloquium Distinguished Lecture Series, Berkeley (2011-11-02),
Computing Matters

Berkeley Wireless Research Center Summer Retreat, Berkeley (2011-06-10),
Computing Matters

UC Berkeley OSQ/PL Club, Berkeley (2011-05-09),
Spatial Computing in Proto

Berkeley Institute of Design Lectures Series, Berkeley (2010-02-06),
Computing Matters

MIT Media Lab, How to Make (almost) Anything Class, Cambridge (2010-11-17),
The Education of Matter

Nokia Research Lab, Palo Alto, CA (2010-11-09),
Bridging the Hardware / Software Divide

CU Boulder, Computer Science Department (2010-10-14),
Bridging the Hardware / Software Divide

MIT Architecture Department Computational Lecture Series, Cambridge (2010-10-09),
The Education of Matter

Fab5, Pune, India (2010-08-20),
Programmable Matter Folding Workflow

MIT Media Lab Class: How To Make Something That Makes (almost) Anything, Cambridge (2009-02-21),
Programmable Matter Software Workflow

Smart Geometry Conference, San Francisco (2009-03-29)
Computing Geometry

Parlab Seminar Series, Berkeley CS Department, Berkeley (2008-04-17)
Spatial Computing in Proto

DCOSS, Marina Del Rey (2009-06-09)
Fast Self-Stabilization for Gradients

EE380 Computer Science Seminar Series, Stanford CS Department, Stanford (2008-04-16)
Spatial Computing in Proto

Google Tech Talk, Boston (2008-02-21),
Spatial Computing in Proto

BBN Seminar, Cambridge (2008-02-05),
Spatial Computing in Proto

New Directions In Software Technology, Saint John's (2007-12-05),
Proto Physics

New Directions In Software Technology, Saint John's (2007-12-04),
Space-Time Programming in Proto

Ideas Boston, Federal Reserve Building (2007-10-04),
Computational Dance: Challenges and Opportunities

New England Programming Language Seminar, TUFTS (2007-04-11),
Spatial Programming in Proto

DARPA ISAT study on Engineered Ensembles Effects, CMU (2007-04-06),
Space-Time Programming in Proto

Animation as Installation class, Harvard (2007-03-16),
Computational Animation

Programming Languages Group Meeting, Harvard (2007-03-14),
Space-Time Programming in Proto

Self-Organizing Systems Group Meeting, Harvard (2007),
Space-Time Programming in Proto

Growth, Form, and Interaction: Artists and Engineers Look to Biology, Harvard (2006),
Proto and Gooze.

Self-Organizing Systems Group Meeting, Harvard (2005),
Neighborhood Amorphous Programming Language.

Lightweight Languages 4 Conference, MIT (2004),
Gooze: A Multimedia Stream Processing Language.

Colloquium, Center for Research in Computing in the Arts, UCSD (2003),
Alien Goo: A Lightweight C Embedding Facility

Dynamic Languages Seminar, MIT (2003),
Alien Goo: A Lightweight C Embedding Facility

Computer Science Colloquium, BBN (2002),
The Java Syntactic Extender

Programming Languages Seminar, Northeastern University (2002),
The Java Syntactic Extender

Computer Science Colloquium, Yale (2002),
The Java Syntactic Extender

Computer Science Colloquium, Harvard (2002),
Simple Dynamic Compilation with GOO

Lightweight Languages 1 Conference, MIT (2001),
Rethinking Lightweight Languages, Java Syntactic Extender and Proto

New Jersey Programming Language Seminar, AT&T (2001),
The Java Syntactic Extender

Dynamic Languages Seminar, MIT (2001),
Simple and Efficient Subclass Predicates

OOPSLA Conference (2001),
The Java Syntactic Extender

Dynamic Languages Seminar, MIT (2000),
Efficient Predicate Dispatch for Dylan

Dynamic Languages Seminar, MIT (2000),
Procedural Macros for Java

NIPS Conference (1991),
A Connectionist Architecture for Navigation

Classes

MIT 6.894 (2001), co-taught with Greg Sullivan and Kostas Arkoudas
The Design and Implementation of Dynamic Object-Oriented Languages

Students

Maxim Lobovsky, MIT Media Lab Masters (2011), co-adviser with Neil Gershenfeld and thesis reader
Stochastic Programmable Matter

Jonathan Ward, MIT Media Lab Masters (2010), co-adviser with Neil Gershenfeld
Printing Digital Materials

Velin Tzanov, MIT Masters (2006), primary adviser,
Distributed Area Search with a Team of Robots

Christopher Taylor, MIT Masters (2005), primary adviser,
Simultaneous Localization and Tracking in Wireless Ad-hoc Sensor Networks

Adam Eames, MIT Masters (2005), primary adviser,
Enabling Path Planning and Threat Avoidance with Wireless Sensor Networks

Michael Salib, MIT Masters (2003), primary adviser,
Starkiller -- A Type Inferencing System for Python

Andrew Sutherland, MIT Masters (2002), primary adviser,
Towards RSEAM: Resilient Serial Execution on Amorphous Machines

James Knight, MIT Masters (2002), primary adviser,
Parameterized Types for GOO

Aaron Ucko, MIT Masters (2001), co-adviser with Greg Sullivan,
Predicate Dispatching in the Common Lisp Object System.

Organizing Activities

Curator, MIT Stata Center Gallery (2006 - present),
COLLISION 11-12

Curator, Axiom Gallery (2007 - present),
COLLISION:technomorph

Curator, Art Interactive (2004 - 2006),
COLLISION 6-10

Curator, Boston Art Windows Project (2005),
windowCOLLISIONone

Organizer, Cambridge (2002 - present),
Collision Collusion Art Technology Speaker Series

Curator, MIT Compton Gallery (2003),
COLLISIONfive, the next dimension

Curator, MIT Museum (2002),
hyperCOLLISION and COLLISION3, in super 3D

Organizer, MIT AI Lab, (2001),
Language Wizard Panels

Organizer, MIT AI Lab, (2000 - 2004),
Dynamic Languages Seminar Series

Awards and Grants

NSF Bio Inspired Computation Grant, Sep 2006

Nominated for Rockefeller New Media Award, Sep 2006

Professional Activities

Member Program Committee (2008 - 2011),
Spatial Computing Workshop in IEEE Self Adaptive Self Organizing Systems (SASO)

Reviewer (2010),
2010 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)

Member Program Committee (2007),
Self Organization in Pervasive Distributed Systems in 2008 ACM Symposium on Applied Computing

Member of the editorial board (2004 - 2008),
Ad Hoc and Sensor Networks journal

Reviewer (2010 - present),
IEEE International Conference on Robotics and Automation

Reviewer (2006 - present),
ACM Transactions on Programming Languages (TOPLAS)

Reviewer (2003 - present),
ACM Transactions on Sensor Networks