How, Where, Why, Who?
How it works
Arcade uses a physics engine to model structural behavior. A physics engine models a collection of masses in motion, and can include several potential sources of force, including gravity, viscous drag, applied loads, and structural elements connecting the masses. This approach has been widely used in computer graphics and games. In structural engineering, the approach is called explicit analysis. This method requires smaller time steps than more conventional implicit analysis, but makes it possible to analyze structures which are unstable. See the publications page to get papers about the program.
The program is written in C++ (about 90,000 total lines at this point). It uses the OpenGL API for graphics and the Microsoft Foundation Classes for the interface.
Where it's headed
Over the past couple of years, the program has added features to support larger and more complex models. These features have included the development of the beam-3 element for reinforced concrete, the extension of the ArcadeScript language, the introduction of batch-type simulation, and the ability to export results. The challenge ahead is to develop these capabilities to tackle more 'serious' problems, while maintaining the simple utility and accessibility of the program in teaching.
Currently, I am working on a 3D version of Arcade, but it will be a few years before it is ready for any public version.
I had the idea for this project in 2000 while looking at assignments from Dave Brogan's course in Advanced Computer graphics. The lecture notes from Andrew Witkin's and David Baraff's 1997 SIGGRAPH workshop on physical modeling were especially useful in learning the algorithms. Dave Luebke also offered a lot of helpful advice.
The project also owes a huge debt to all the people in the world who give away so much useful information and software on the web, particularly at web sites such as www.codeguru.com, www.experts-exchange.com, and www.codeproject.com. Irrespective of the hype about the web, there is no doubt that it has fundamentally changed the way that people can work and learn.
Finally, I'd like to acknowledge the contribution of the late (alas) Randy Pausch. I knew Randy in the early 1990s at UVa. He had no direct involvement in Arcade, but I learned long ago from Randy that there is no dividing line between things that are serious and things that are fun. With anything, you should always recognize the serious part, and always find the fun. Arcade grew from that lesson.
|Copyright 2002-09 © Kirk Martini, martini @ virginia.edu, University of Virginia|