We have developed software applications that design HVAC systems (that is, select, locate, and size components and their interconnections) given building descriptions, user preferences, and built-in rules. When this capability is combined with other key application characteristics (graphic interface, interactive recalculation, full integration, self- contained reference data, strict retention of user modifications, and automatic parts selection), the result is a powerful assistant that greatly increases user productivity and design quality. Our application structure is a framework for iterative improvements in design and analysis algorithms and the addition of optimization techniques. We see this type of software ultimately replacing most design functions now performed by people.