The programmable network prototyping system (PNPS) uses a collection of reusable hardware modules that implement generic communications functions such as transmission, reception, signal propagation, and pattern matching. These modules are interconnected and configured to emulate a variety of communication networks whose behavior can be monitored under different load conditions. The user specifies a network as a set of interacting components using available software tools. These tools are accessible within a prototyping environment that includes a control system for configuring the hardware modules and interconnecting them according to the component specifications. Previously designed components are stored in a library and can be used to specify new networks. Although PNPS is designed to provide a prototyping environment for communication networks, some of the basic ideas can be useful in other contexts.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>