Sunteți pe pagina 1din 3

COMPUTER-AIDED DESIGN

Computer-Aided Design 34 (2002) 541543 www.elsevier.com/locate/cad

Short communication

FastShip & NURBS modeling: a historical note


G.S. Hazen*
913 Forest Terrace, Annapolis, MD 21401, USA

January in Annapolis can be a decidedly cold and unpleasant month, and the rst week of 1983 was no exception. My mood matched the weather. I was scheduled to give a paper on computer-aided yacht design at the Chesapeake Sailing Yacht Symposium the following week [1]; and although I was pleased with the paper and its content, it was also the source of my frustration. Though my co-author, Steve Killing, and I had outlined several of the many ways in which we felt that the personal computer would favorably impact yacht design in the near future, neither of us was in a position to capitalize on these ideas. But then I got a most unexpected phone call, and an equally unexpected offer. The gentleman on the phone said his name was Jack James, and that the folks at USYRU 1 had told him that I could design the fastest 50-foot sailboat to be found. Though attered, I replied that they had probably meant that I had a sailing performance prediction program that could tell him if one candidate design was faster than another. Not bothered by this apparent miscue, Jack asked whether he could put me on retainer to provide consulting services related to performance prediction. Why I responded the way I did is a mystery to this day. I turned down his generous offer and gave him a counter-proposal; would he like to invest in a new business to create computer-aided design tools for yacht design? After a moment's thought, Jack responded afrmatively; and the day before the symposium began, we signed an agreement that started Design Systems and Services, Inc. The next ten months were lled with some of the most productive programming that I have ever experienced. So many of the ideas that were nally being coded had been fermenting for the previous 7 years since I had left MIT with a degree in naval architecture. I hired Steve Killing, and together we created codes for designing and analyzing sailplans, spars and rigging, keels and rudders. My existing hydrostatics and sailing performance prediction codes were enhanced, and we developed our rst interactive
* Tel.: 11-410-353-1265; fax: 11-410-643-7535. E-mail address: ghazen@proteusengineering.com (G.S. Hazen). 1 USYRUthe United States Yacht Racing Union, now known as US Sailing, is our national sailing authority. 0010-4485/02/$ - see front matter q 2002 Published by Elsevier Science Ltd. PII: S 0010-448 5(01)00123-3

graphics code for digitizing lines drawings. But coding for the most revolutionary program in the suite did not commence until late July, when I wrote the rst subroutines for FastYacht, the B-spline surface modeler that was to be our agship application. I had been enamored of computer graphics since I rst saw a CALCOMP plotter graph a complex mathematical function in 1972. I had read dozens of papers dealing with interpolating splines, Bezier curves, B-splines, Coons patches and more. But what drew me to tensor product Bspline surfaces was a report by J.G. Hayes [2] that showed a single surface with an embedded crease or knuckle. To me, that picture looked like it was lifted from a portion of a yacht hull. Later I attended SCHAD 77 and read Professor Rogers' paper, `B-spline Curves and Surfaces for Ship Hull Denition' [3], which compared B-splines with other curve and surface formulations. Sailing yacht designers are especially particular about the fairness of their surfaces, but both rating rules and practical constraints often require that they embed local discontinuities within the hull. It seemed to me that B-splines provided both the global fairness and local control that was required. In its rst incarnation, the FastYacht surface modeler did not use a full NURBS implementation; instead, it was based on uniform cubic B-spline tensor product surfaces with periodic knot vectors. While this choice of basis functions may seem odd, it was actually inspired by a number of geometric intuitions. For years I had been using Bezier curves in the fairing and design of yacht appendages, 2 and I was very enamored of the power and intuitive nature of manipulating a curve through its control net. I wanted our modeler to emphasize the direct manipulation of the control net as a means to design and manipulate surfaces. I was certain that any unfairness in the hull form would be more evident in the control net caricature of the hull, than it would be in the hull lines themselves. This observation was especially true given
2 I had rst encountered this kind of fairing in S.S.Rabl's book `Ship and aircraft fairing and development' [4]. Rabl's book was written to train loftsmen during the frenzied wartime manufacturing ramp up. Though the book pre-dates Bezier's published work, Rabl's method for fairing propellor spinners and similar constructions was analogous to creating quadratic Bezier curves using de Casteljau's geometric recursion.

542

G.S. Hazen / Computer-Aided Design 34 (2002) 541543

the low resolution of the monochrome monitor of the HP 9816 that we were using as our computing platform. Years of fairing yacht hulls by hand, and later mimicking that process using interpolating cubic splines, had instilled in me a desire to automatically control the surface boundary conditions in a manner that assured `natural spline' endings along the isoparametric mesh lines. The use of uniform periodic knot vectors made this possible in a direct and geometrically intuitive way. Unlike B-splines that use open knot vectors, the periodic B-spline basis functions are cyclical repeats of one another. I capitalized on this fact to establish all of the necessary geometric relationships required to control the outer fringe of control points in a manner that assured the edge boundary conditions that I desired. The resulting program quietly hid these vertices from the user, who was left to design surfaces by manipulating the interior control points interactively. As he did so, the program would compute the necessary geometric positions of the so-called `phantom vertices' so as to maintain the prescribed boundary conditions. Our choice of uniform knot vectors meant that the surface interpolated to the corners of the visible control net in a manner analogous to B-splines using open knot vectors. Another innovation that the uniform periodic cubic B-splines allowed was the ability to maintain a `corner wrap' condition where required. Though tensor-product surfaces have four edges and four corners, when used to model yacht hulls it is often desirable to make the forefoot corner vanish. This was accomplished by wrapping the `phantom vertices' in the corner around to the neighboring row or column vertex. Determining where the `phantom corner' should go was slightly more complicated, but its required position was determined using only geometric reasoning. Ultimately, we implemented several other edge and corner conditions that the designer could prescribe a priori, and then never need consciously address again. The hallmark of the hulls that were developed using the uniform, periodic, cubic B-splines was an unsurpassed fairness and `build-ability'. As an added bonus, since the designer never directly controlled the `phantom vertices', the visible control nets were smaller and simpler to work with. 3 At rst we were somewhat concerned about not using rational B-splines in our code for producing regular conic surfaces, but we soon discovered that a control net congured as a regular polygon with as few as six sides could

produce surfaces that agreed with true conics to one part in 10,000. The rst commercial release of FastYacht was publicly debuted in October 1983 at a demonstration during the Annapolis Sailboat Show. Even on the nine inch diagonal screen of the HP9816, the power of using the control net to design and manipulate a hull's surface was evident. Instead of working in several orthogonal views of the surface, our program allowed the user to view and edit the surface in three dimensions, thus making the best use of our limited screen resolution. Many of those watching likened the process to sculpting. In a profession known for its conservatism and traditions, it was gratifying to see this new paradigm for designing surfaces being so eagerly embraced. After we had concluded the formal demonstration, I noticed that Professor David Rogers was in the audience. I had often visited his CAD lab at the United States Naval Academy (just across the harbor from my ofce), and I was in awe of the array of high-end graphics hardware and software that he had at his disposal. Indeed, it had been a distinct advantage to be collocated in Annapolis with Professor Rogers, his CAD lab, and the Nimitz Library. It was during one of my visits to the Naval Academy that Professor Rogers had demonstrated and explained his algorithm for dynamic Bspline editing, which was to become a key element in the implementation of our interactive B-spline surface modeler. 4 When the professor asked if I would mind him making a few remarks, I was understandably concerned. I feared that he might pronounce our effort to be amateurish, but being the son of a professor I knew it was futile to try to say no. Instead of denouncing FastYacht as a toy, Professor Rogers likened the code to design systems at several major manufacturers costing orders of magnitude more money. This was very strong praise from a man so highly accomplished and well known in the eld of computer graphics. Needless to say, we could not have been happier. It is interesting to note that in the timeframe of 1983 1984 there were two similar interactive surface modelers being developed: MacSurf in Australia and Circe3D in France. There were a great many commonalities amongst the systems. Like us, these other programmers were motivated by a desire to improve the yacht design process. 5 Each

3 In its second major release, FastYacht included a full NURBS engine; but it was only used to allow importing surfaces from other CAD tools: FastYacht surfaces were still uniform, periodic, bi-cubic B-splines. Since its fourth major release, FastShip (FastYacht's successor) has used open knot vectors and NURBS surfaces of any order, rational or not. Though the full exibility of NURBS was thus incorporated into the tool, we lost the ability to set the useful a priori boundary conditions of the early versions of FastYacht. Ironically, the author is currently involved in the development of a new class of editing controls called `metapoles' in an attempt to regain prescriptive control of the edge boundary conditions that was lost when the conventional NURBS approach was adopted.

4 Professor Rogers and S.G. Sattereld had published and presented the algorithm for dynamic B-spline editing in a paper `Dynamic B-spline surfaces' at ICCAS 82 [5]. It is possible that the author may have read this paper prior to 1983, but the visit to the United States Naval Academy where Professor Rogers demonstrated and explained the algorithm is the author's rst recollection of encountering this important bit of computational methodology. 5 Being a very accomplish board sailor, Andrew Mason, the developer of MacSurf, was equally interested in developing a tool that could be used to design sail- and surfboards.

G.S. Hazen / Computer-Aided Design 34 (2002) 541543

543

of the programs was created to run on one of the desktop personal computers that were just becoming available. The IBM PC was still too slow and lacked suitable graphics, but HP and Apple had recently introduced personal computers based on the Motorola 68000 chip that had both graphics capability and decent oating point performance. In Australia, Andrew Mason (Graphic Magic) developed MacSurf 6 on the MacIntosh. Ironically, considering our location in Annapolis, Andrew's work was almost entirely based on Professor Rogers' papers about NURBS and his book Mathematical Elements for Computer Graphics [6]. In France, Marc Pommellet (SISTRE) developed Circe3D on the same HP machines that we were using, but Marc's system was based entirely on Bezier patches. Marc was also impressed with the intuitive nature of designing with the Bezier control points. Perhaps given his nationality, it is understandable that Marc chose to follow his countryman's lead and not use general B-spline surfaces. There were many other similarities between FastYacht, MacSurf and Circe3D and their developers. Andrew, Marc, and I were each about 30-yearsold. All of us started businesses to pursue the development of these tools, and were initially small one or two man shops. And though each of us initially sought to impact the recreational marine business, and our programs were all used to design America's Cup yachts, we later found our products in demand and use by our countries' navies. Those were heady times for PC CAD tool developers indeed! Acknowledgements The author wishes to thank Professor David F. Rogers for providing both the motivation to write this essay and for his friendship, guidance, and encouragement since our paths rst crossed more than 20 years ago.

References
[1] Hayes JG. New shapes from bicubic splines. International Conference on Computers in Engineering and Building Design (CAD 74), September, Imperial College, London, 1974. [2] Hazen GS, Killing S. Yacht design with computers: new methods for new tools, 15 January 1983. Proceedings of the Sixth Chesapeake Sailing Wacht Symposium, Annapolis, Maryland, 1983. [3] Rogers DF. B-spline curves and surfaces for ship hull denition. Proceedings of the First International Symposium on ComputerAided Hull Surface Denition, 2627 September 1977, United States Naval Academy, Annapolis, Maryland, 1977. [4] Rabl SS. Ship and aircraft fairing and development. Cornell Maritime Press, 1941. [5] Rogers DF, Sattereld SG. Dynamic B-spline surfaces. Proceedings of the Fourth International Conference on Computer Applications in the Automation of Shipyard Operation and Ship Design (ICCAS 82), 710 June 1982, Annapolis, Maryland, North Holland, 1982. p. 18996. [6] Rogers DF, Adams JA. Mathematical elements for computer graphics. McGraw Book Co, 1976. Mr Hazen received his MSE, Naval Architecture and Marine Engineering, MIT, in 1975 and a BSE, Aerospace & Mechanical Engineering, Princeton University, in 1973. He is presently Director of Product Development at Proteus Engineering. He has spent the past two decades developing software for naval architects and marine engineers. His specialties include NURBS modeling, distributed component-based software development, and emerging web-technologies such as XML and ASP. The focus of much of his recent activities has been the development of Smart Product Models and their associated applications, and in this capacity, he spent the past year participating in the DD21 Gold Team's SPM effort. Mr Hazen has founded several companies, including Design Systems & Services, Inc. (DSS), which became a part of Proteus Engineering in 1994. While running DSS, he authored the surface modeler, FastShip. His other companies include Annmarc, Inc., Hazen & Stearn, Hazen Design Technologies, Ltd. Previous employers include C&C Design Group, MIT, and Aeronautical Research Associates of Princeton. His customers include top yacht designers, an America's Cup syndicate, the US Navy, and several commercial shipyards. Mr Hazen is a member of the American Institute of Aeronautics and Astronautics, and the Society of Naval Architects and Marines Engineers.

6 About 10 years ago, Andrew changed the name MacSurf to MaxSurf and the name of the company from Graphic Magic to Formation Design Systems when the surface design system became available on multiple platforms.

S-ar putea să vă placă și