Assignment 3

The purpose of this assignment is to encourage you to take a close look at one of the CAD tools that you have been using in the last three weeks, to talk to the original author of the chosen tool, and to make an extension to that tool.

Possible Mini-Projects:

Smart Clustering of Bubble Diagram
Consultant: Randy Keller

Extend the Bubble-Diagram-Builder to start up with a more appropriate initial layout of the bubble diagram.

Use techniques developed for automatic placement of major building blocks in a floorplan of integrated circuits, based on "clustering" and "mincut" to produce a more reasonably laid out initial bubble diagram in which rooms that belong together are already placed close to one another. Plan a modular approach, where you start with a simple algorithm that gives some improvement, and where later you can add more techniques or run more iterations to obtain even better results.
(This Mini-Project may evolve into a complete course project.)

Global Connectivity Checking
Consultant: Maryann Simmons

Extend the Connectivity Checker to have a better batch-mode checking capability.

Add a batch evaluation mode to the floorplan connectivity checker tool that looks at the whole adjacency matrix. Smart decisions will have to be made on what it means to check the various adjacency matrix entries:
(a) Faculty -- Faculty = 2, or
(b) Faculty -- Secretary = 2.
The first one means that faculty want to be close to most or to many of their colleagues; but the second means that faculty want to be close to the one office that houses their secretary. So what is the test to be performed in the symbolic floorplan ? For (a), perhaps check the maximum of all the shortest paths between any two faculty offices ... or perhaps do a histogram. For (b) check the distance from each faculty office to the closest secretarial office, -- but make sure that not all faculty offices are linked to the same small secretarial office.

Building Cost Estimation
Consultant: Laura Downs

Extend the Slicer program to give evaluations of additional geometrical building characteristics which will allow to obtain a rough building cost estimation.

Using a heuristic set of numbers for building costs based on square footage, number of stories, total building height, amount of outside walls, size of roof, etc, it should be possible to produce a rough building cost estimate from the symbolic description of the floorplans -- which can be used in the early conceptual design phase to warn architects and clients when their designs get too elaborate or flamboyant. In the Slicer program, which already calculates floor areas for each floor, also calculate additional values for total area of outer walls and for roof areas, plus an overhang "hyper-volume" calculated as the square of the overhang distance times its length times the height of the construction above it. Provide a way to read corresponding weighting factors from a small file or to enter them on the command line, and then display the estimated cost by forming a weighted sum of the various contributions to cost.

Building Cost Estimation
Consultant: Rick Lewis

Add more editing capabilities to the symbolic representation of the Building-Model-Generator, or more flexibility in the way that it accepts layout files with a richer annotation.

Actually, the editing capabilities are so intensly intertwined with Rick's code, that it might be hard to go in there and change things. Thus a better approach is to make a stand-alone filter between Dave Bacher's FSM tool and Rick's BMG. This filter program should clean up the potentially flawed outputs from FSM and also do some of the Boolean operations on rectilinear polygons so that we have the flexibility to make L-shaped rooms and buildings with nested contours of outer walls. This filter would probably snap all vertex coordinates to an integer grid, make sure no two rooms overlap, and that all lie within the contours of outer walls. It would combine adjacent rectangles with identical labels into a single rectilinear contour. It would then subtract all rooms from the floor polygon, break up the remaining floor space into corridor rectangles, and merge them with other user-defined rectangles labelled "corridor_". This collection of good rectilinear contours would then be sent to the BMG.

What To Do

<-- Back to CS 294-5 HomePage

Page Editor: Carlo H. Séquin