The following paper was originally published in the
Proceedings of the USENIX Fourth Annual Tcl/Tk Workshop
Monterey, California, July 1996.

For more information about USENIX Association contact:

1. Phone: | (510) 528-8649
2. FAX: | (510) 548-5738
3. Email: | office@usenix.org
4. WWW URL: | http://www.usenix.org

Next: The Neighborhood Viewer Up: Lessons from the Neighborhood Previous: Lessons from the Neighborhood

## Abstract

This paper discusses the development in Tk of a collaborative browser for scientific image databases. The browser, known as the ``neighborhood viewer,'' allows groups of neuroscientists to explore systematically a large collection of brain images. The paper discusses the application, its development, and a set of lessons learned during development. In particular, it shows how constraints and distributed constraints simplified development, discusses the implementation of a wavelet-based image format, and draws lessons about engineering experimental, evolving systems.

This paper tells the story of a group of scientists working together to build an environment in which many people could work together to study the brain. There are many challenges for neuroscientists in brain research, but we focus on the lessons that computer scientists learned as we used Tcl and Tk to invent new interfaces and applications. Our efforts bear fruit not only in the neighborhood viewer application (pictured in Figure 1) but also in a set of experiences and lessons that will make it easier for us to develop other innovative applications. We hope the reader will benefit from our experiences and thereby develop applications faster and more creatively as well.

We structure this paper as a development narrative. The next section gives the background and outlines the story. The following three sections focus more closely on three of the major lessons: lessons on the use of constraint programming, flexible coupling through distributed constraints, and the incorporation of wavelet-compressed images. The final section presents general lessons about engineering innovative and complex applications using Tcl and Tk.