Steven P. Reiss


Almost all of the software I have developed, both for research and for teaching, is available either as open source or under a non-commercial open source license.  More recent (and active) software is maintained in GitHub.  Older software is available from the Brown CS ftp site.  Software that no longer compiles or runs is not listed here but is available upon request.        


Code Bubbles

Our programming environment for Java.  There is some support for Node.JS andPython as well.


Our support library.  This is used by most of the other projects.

Seede  (SeedeBB)

Continuous execution (live programming) for Java.   Seedebb is the plugin for Code Bubbles.

FAIT  (faitbb, karma, fredit)

Java data flow analysis that can update as the user types.  Faitbb and fredit are plugins forCode Bubbles, karma is the run time library.


Java low-overhead dynamic performance analysis package.  Includes memory ownership visualization.


Internet of things control language.  Includes web interface, rule engine and various sensors. Also includes the implementation of our smart sign (status displa) and interfaces for smarthings, smarthub, and smarthome.

S6  (Cose)

S6 is our semantic search engine.  It includes the code for searching for user interfaces and search for test cases.  Cose is the code for interfacing with GitHub and SearchCode as an independent package.    


This is an arduino program for driving our 1979-era pinball machine using our own CPU and controller boards.

AVAILABLE via FTP (still functional):


This is our software visualization system. It consists of a program instrumentation package for C/C++, a JVMPI package for Java, various analysis frameworks for dynamic program data, a visual query interface, a visualization framework, several visualization methods, and a number of related items. Includes the Jivwe and Jove dynamic visualizers.


This package represents our constraint-based programming environment. It includes a user interface that shows the programmer current inconsistencies between software artifacts and current style/language problems with the source both textually and graphically. It also includes a variety of tools for analyzing and storing information about different software artifacts including Java source, UML class and interaction diagrams (ROSE and ArgoUml), CVS histories, javadoc documentation, and Junit-based test cases. Includes our origiinal flow analysis package CHET.


This is our experimental framework for Internet-scale computing. It is built on top of a peer-to-peer backbone (based on JXTA) and includes facilities for defining the syntax and semantics of components and for defining web services, libraries, and other servers as implementations of these components. In includes facilities for sharing files and data across the Internet.


This is another visualization framework. It is aimed at dynamic visualization of Java programs where the programmer can quickly define what should be visualized and the system automatically does the instrumentation and runs the program with an appropriate visualization.

Last updated: April 8, 2021