+ All Categories
Home > Documents > Web based collaborative CAAD

Web based collaborative CAAD

Date post: 09-Apr-2023
Category:
Upload: independent
View: 0 times
Download: 0 times
Share this document with a friend
17
Transcript

Web Based Collaborative CAAD�C. Bajaj, S. Cutchin, V. PascucciDept. of Computer SciencesUniversity of Texas, Austin, TX,78712 A. Paoluzzi, C. Morgia, G.ScorzelliDipartimento di Informaticae AutomazioneUniversita di Roma Tre1 IntroductionComputer Aided Architectural Design(CAAD) of large complexes typically involves interaction be-tween multiple users that concur in developing di�erent parts or aspects of the designed structure.In this paper we introduce a new framework that implements a collaborative CAAD software archi-tecture to regulate multiple graphical web clients interacting with multiple distributed computationservers. The key components of the system are: (a) geometric modeling services for CAAD, (b) ashared language interface, (c) a distribution layer for hierarchical object communication and standardJDBC interfaces to database system, (d) collaboration layer for multi-user coordination and control,and (e) a shared Java1/VRML2 browser. The geometric modeling services are based on a geometricprogramming language PlaSM with an exportable Java interface[23]. PLaSM provides a design systemkernel suitable for the initial stages of high level conceptual design and for the �nal detailed shaperepresentation. The collaboration layer is provided by the Shastra collaboration toolkit. This toolkitprovides connections to multiple distributed network services. This allows for connecting multiplegeometric modeling engines to a distributed database server providing persistent storage and safetransactions for concurrent data modi�cations. Collaborative users are provided with knowledge ofthe transactions made by other users endowing them with collaborative awareness of global activity.A java enhanced VRML browser provides a graphical thin-client interface with on demand extensiblecapabilities that is accessed using regular web browsers. The resulting system is an innovative webbased collaborative CAAD system that takes full advantage of interoperability with network services,multi-user coordination, and web connectivity to support collaborative design.2 Prior Work on Web Collaboration SystemsSeveral projects are underway to extend the capabilities of the Web to support collaborative activity[10,14, 19]. Proxy Server Collaboration[14], Modi�ed Servers and CGI executables[10], and special pur-�This research is supported in part by grants from NSF-CCR-9732306, NSF-KDI-DMS-9873326, DOE-ASCI-BD-485,and NASA-NCC 2-5276.1Trademark Sun Microsystems, Inc2Virtual Reality Modeling Language 1

posed dedicated helper applications[19]. The Obliq[11] system developed powerful migratory Webapplications and systems. Bentley, et. al[10] list several areas of necessary improvement in the currentimplementation of the HTTP protocol. Several Internet based distributed systems have been devel-oped to provide network computing capabilities on the internet: ATLAS[6], Charlotte[8], JPVM[16],JavaParty[24], Legion[21], and Globus[18] to list some of the more prominent ones. CollaborativeInternet systems are also becoming available such as Habanero[12], Tango[9], Infosphere[13], andKnitting Factor[7], and Java Collaborator Toolset[20]. These systems provide di�erent use variousschemes for communication, resource discovery, data locaion, application coupling, oor control andsession control The schemes for each are summarized in the following table:Data Resource Data Application Floor SessionSystem Communication Discovery Location Coupling Control ControlTango Connected Passive Centralized programable Master SimpleHabanero Connected Passive Centralized Programable Multiple SimpleJCTS Connected Passive Centralized Fully Coupled None OpenKF Connected Active Replicated Applicaton Application ApplicationShastra Event Active Hybrid Multiple Multiple MultipleA prior research project developed a LAN based collaboration architecture and toolkit called Shas-tra. The Shastra Collaboration Architecture[1, 2, 3] de�nes an extensible, programmable, computingenvironment for experimenting with sophisticated collaborative applications that support LAN basedcollaboration amongst multiple participants and systems.3 Background3.1 PLASMThe PLaSM language [23] is a geometry-oriented extension of a subset of the functional languageFL [26]. Generally speaking, each PLaSM program is a function. When applied to some input argumenteach program produces some output value. Two programs are usually connected by using functionalcomposition, so that the output of the �rst program is used as input to the second program. The com-position of PLaSM functions behaves exactly as the standard composition of mathematical functions.E.g. the application of the compound mathematical function f � g to the x argument(f � g)(x) � f(g(x))means that the function g is �rst applied to x and that the function f is then applied to the valueg(x). The PLaSM denotation for the previous expressions would be(f � g) : x � f : (g : x)where � stands for function composition and where g:x stands for application of the function gto the argument x.In PLaSM geomtric models a regular data-types so that the design/modeling process is implementedby writing a program [22, 4]. The geometric consistency of the generated model is guaranteed at thesyntactic level. Any program syntactically correct is passed to the geometry evaluation kernel [15, 25,17] that is guaranteed to return a \valid" model. 2

3.2 Shastra Collaboration ToolkitThe Shastra Collaboration Toolkit[1, 2, 5] de�nes an extensible, programmable, computing envi-ronment for developing, using, and experimenting with sophisticated collaborative applications thatsupport large scale geographically dispersed collaboration amongst multiple participants and sys-tems. The architecture is connectionless, scalable, supports multi-group federation, has an adaptabledata location model, supports exible application coupling, multiple coordination strategies, dynamicdownloading of executable code and is event driven.The architecture uses packet based communication to support scalability and better network useon a wide area network. Because of the dynamic and un-reliable nature of wide area networks anactive resource discovery algorithm is implemented where the resource managers (Kernels) activelyattempt to locate network resources. Network applications also actively attempt to contact kernels.This allows for better reliability in an unreliable environment. In order to enhance access to shareddata a hybrid data replication scheme has been developed. In this scheme data shared within a singlesession is localized to that particular session. Improving users' access to that particular set of data.However to ensure reliable access to all network resources the list of available resources is replicatedthrougout the system. An adaptive scheme involving object migration and fragmentation is underdevelopment.Flexible application coupling is supported by programmable control over the events shared be-tween applications. This can be controlled by the session manager responsible for managing thecollaborative session. Multiple pre-built oor control schemes are provided by the existing substrate,(master/slave,round-robin, baton passing, invitation, voting), and the system supports the program-ming of applicaton de�ned oor control schemes. The session manager controls this oor controlscheme using a specialized form of access control where users' requested are disallowd during the timethey do not have the oor. Requests for access to data which is denied can be routed to a speci�eduser or program for processing. This allows the system to support query based oor requests or morecomplex oor control schemes. Session management schemes are provided that support multiple formsof control over session membership, such as master based, invitation only and voting. A graph basedscheme for sharing information between active sessions is also provided. This scheme allows users inseperate sessions to share portions of their session space. Users may specify the portions of their spaceto be shared and naming con icts are processed dynamicaly by querying responsible agents within acollaborative session.The architecture de�nes a collection of specialized servers providing server speci�c services whichcommunicate using network events. The interaction of these specialized servers creates an environmentcapable of supporting collaborative work. A collection of specialized servers and services has beencreated that provide collaboration awareness, data management, and coordination control to multipleusers. A pictorial representation of the architecture is given in Figure 1.The speci�c set of special purpose servers are session manager, kernel, and thin-client servers.Even though these applications are called servers they can act as clients of each other and users mayinteract with them directly.3

Figure 1: The shastra communication architecture, inter-application communication, and web browserinteraction.4 Web CAAD System Architecture4.1 System ComponentsThe CAAD environment is composed of four interoperating applications: A Plasm Geometry Server,a Plasm Client User Interface, a Shastra Collaborative 3D object browser, and a Shastra sessionmanager. A web based collaboration substrate called Shastra is used to provide communication,coordination, and collaboration capabilities to the applications. Finally an o� the shelf Databasesystem is used to provide persistant long term storage of architectural objects.Plasm Geometric Server's execute Plasm scripts and export geometric entities. These entities aremade available to other applications through the Plasm package language construct.Plasm User Interface is a tool for creating, editing, and submitting plasm scripts. It providesusers with the ability to de�ne Geometric entitities, and computations, and then submit thesecomputations to Plasm Servers.Shastra 3D object browser is used to visualize exported geometries. A browser is run on a user'sworkstation in conjunction with the Plasm User Interface. The 3D object browser is a down-loaded Java applet used in conjunction with a web browser's VRML plug-in browser through thestandard External Authoring Interface. The applet is securely downloaded prompting users forthe various permissions it needs to make remote conections at time of download. Full internetcollaboration is supported through this applet. The architecture of the 3D object browser isshown in Figure 2 (b).Session Manager creates and manages collaboration sessions. It is responsible for controlling andcoordinating the interaction of the other applications. The session manager maintains sets ofPlasm Packages shared amongst users in collaborative sessions. It is responsible for coordinatingcommunication and collaboration between users, script editors, browsers, geometry servers, andexternal databases.4

(a) (b) (c)Figure 2: The Plasm/Shastra integrated architecture. (a) shows a simple collaborative environment.(b) shows the architecture of the 3d browser. (c) shows the fully integrated collaborative environment.4.2 Packages in PlasmThe PLaSM interpreter was initially designed for a typical mono-user environment, where one canonly execute de�nitions/expressions and export the results in a format suitable for visualization (e.g.VRML). Since in a multi-user distributed environment this is not an adequate model of computationwe have been extending the system to enable a more general notion of evaluation environment. Thisis done in a simple and natural way with minimal language extension by introducing the notion namespace. Each evaluation of a PLaSM expression occurs within a \package". This either generates a newmodel or de�nes a new function that extends the package. Primitive functions are provided to importnames from other packages or to publish the current version of the package.This simple mechanism becomes particularly useful in a distributed modeling environment sinceone can export di�erent \views" of a model. If a user is modeling some particular detailed of a buildinghe does need to interfere continuously with other users that are interested in the overall structure ofthe building. He can export a simpli�ed version of the building that is not going to be updated ateach small model modi�cation. This greatly reduces the network usage and naturally reproduces theactual level of interaction among the multiple cooperating agents.The package publishing mechanism is also useful in term of design process since allows any usesto access a particular version of any package. This means that the \view" of package is dependent onthe identity of the user that access it and on the version that is being consider (the default versionbeing the most up to date). One can easily reconsider early design decisions and explore relevantalternatives.4.3 Collaborative CAAD OperationUsers of the CAAD system interact with the Plasm script editor and the VRML browser running onthere local machine. There is a 3D browser associated with every Plasm editor.After joining a session a user may submit a script for execution. The session manager controllingthe current session is responsible for selecting the Plasm server to execute the script. This script isexecuted and the resulting set of geometric entities are associated with the submitting user interface.The user may then designate speci�c entities as shareable. This allows other session members toaccess the objects. 5

The session manager controls the access to various shared entities in the collaborative setting.It maintains a list of available Plasm servers, keeps a list of Plasm Packages being shared betweenusers and controls view/view constraints between users' VRML browsers. The session manager takesadvantage of the Plasm Package construct to provide powerful collaboration capabilities to the users.The use of packages allows for the assigning of constraints between multiple geometric entities, andbetween views and entities. The session manager can support multiple versions of the same package,allowing a form of revision control, as well as automaticaly resolving name con icts between packagesand geometric entities. The session manager can also support packages with the same names byprompting the package owner to specify the speci�c scope the of the package. If two users con ictas to this scope one or the other must alter the scope of there package. The session leader can setpriorities for speci�c users to perform this decision automaticaly. The session manager maintainsup to date representations of the packages under its control by monitoring the results of the scriptit passes to Plasm servers. It caches these packages and shares them amongst participants. Theinteraction of the session manager and the applicatoins it controls can be seen in Figure 2 (d). Thestatic architecture of the manager is shown in Figure 2 (c).The visualizer can operate in single user or multi-user modes. In single user mode the user mayview package objects privately, these object may be retrieved from remote servers or the local disk,and visualize and navigate privately. In multi-user mode loaded objects are shared amongst all userswho have joined together into a session. In multi-user mode users may control the degree of couplingbetween their object browsers. Flexible collaboration coupling is provided by the underlying Shastracollaboration substrate. Users may elect to share the scene view, object properties, and object display.Which users can control this coupling is determined by the particular type of oor control being used.This oor control is chosen by the session initiator. When the scene view is shared navigation of thescene is shared amongst all users. When not shared each user navigates the shared object individualy.Object properties include color, wireframe or solid display, and can be shared or made private basedon user selection and the current oor control policy. Similarly the display of selected objects canbe shared or independent. Users may select which loaded shared objects all users view, or may electto only control the display in their on view. Users may navigate the scene using standard VRMLnavigation controls. These include the standard Walk, Fly, and Examiner modes. When views areshared navigation by a single user causes the same navigation in all other users views. Which usercontrols the navigation is controlled by the oor control policy selected at session manager initiation.When a session is initialy created by a user they choose a oor control scheme for the session. Currentlysupported schemes are master/slave mode, where the initiator is the master view, and all other usersare slave viewers, round-robin, where users take turns controlling the shared controls, and un-regulatedwhere any user may have the oor at any time. A session can be created by any user. They selectfrom a list of other users and initiate a new session. The other users are invited to join the sessionby the newly created session manager. The iniating user is the leader of the session and speci�es the oor control policy, as well as access permissions for any shared objects.6

5 Collaborative design exampleIn this section a simple but non trivial example of collaborative architectural design is discussed,where the preliminary design of a building tower is step-wise de�ned and detailed.In particular, it is supposed that three di�erent teams collaborate to the design, by developing theschematic building layout and elevation, the tower rigid kernel including stairs and elevators, and thecurtain walls, including panels and windows.Function toolbox A set of specialized functions may be previously developed by some languagespecialist and collected into a package. This package may be accessed by each designer, as any otherpre-de�ned PLaSM package. The toolbox functions needed in this example works as speci�ed in thefollowing. The Q function extends the prede�ned operator QUOTE to accept both sequences and singlenumbers, as well mixed sequences; the ButFirstButLast function eliminates both the �rst and thelast element from its input sequence; the mirror function allows for mirroring every geometric modelwith respect to a coordinate, but without changing its containment box; the stack function returns anassembly of n instances of any polyhedral obj stacked along the z coordinate. Notice that it uses theheight symbol, de�ned as a external object, to be imported from the DesignParameters package. Ashorter internal name p1 is here assigned to such package. Finally, the multistack function converselyaggregates n instances of Obj along any sequence of coordinates.IMPORT:<<p1,DesignParameters>>;DEF Q = QUOTE~CAT~AA:(IF:<IsSeq,ID,LIST>)~IF:<IsSeq,ID,LIST>;DEF ButFirstButLast = REVERSE~TAIL~REVERSE~TAIL;DEF mirror (coord::IsInt)(obj::IsPol) = ( T:coord:param ~ S:coord:-1 ):ObjWHEREparam = min:coord:Obj - min:coord:(S:coord:-1:Obj)END;DEF Stack (Obj::IsPol)(n::IsInt) = (STRUCT~AA:STRUCT~DISTR):<(AA:(T:3)~AA:*~DISTR):<0..(n - 1),p1:height>, Obj >;DEF MultiStack (coords::IsSeq)(Obj::IsPol)(n::IsInt) =(STRUCT~AA:STRUCT~DISTR):<(AA:(T:coords)~(AA:(AA:*))~AA:DISTL~DISTR):<0..(n - 1),param>, Obj >WHEREparam = IF:<IsSeq,ID,LIST>:(SIZE:coords:Obj)END;Design parameters package In order to maintain the code quite readable, just few design pa-rameters were used in our example. In particular, it is supposed that only the number of oors,the inter- oor height, as well as the numeric series that span the tower fronts, are considered designparameters, and allocated in a specialized package, named DesignParameters. So they become ac-cessible by any member of the design team but can be modi�ed only by people with suitable accessrights. The parameters values used in the sequel are the following:7

DEF nFloors = 20; DEF xSeq = <12,12,12>;DEF height = 3; DEF ySeq = <6,6,-6,6,6>;It is interesting to note that the resulting design is very much parameterized. In Figures 3aand 3b the building layout and kernel generated from two di�erent sets of parameters can be visuallycompared.

Figure 3: (a) Design generated by setting nFloors to 4; and the other parameters to the default value;(b) Design generated by DEF nFloors = 2; DEF xSeq = <10,15,8,12>; DEF height = 3.6; DEFySeq = <6,8,-6,8,6>;Floor layout package The wire-frame model of the tower's preliminary design is very easy togenerate with PLaSM. In particular, the floor layout is obtained by assembling two suitable polyhedralproducts [15]. The set of beams and columns of the generic tower oor is generated by a simple formulaof PLaSM geometric calculus, involving the extraction of the 1D-skeleton of the oor layout. The wire-frame model BuildingSK of the tower is shown in Figure 5a. Since no name space collision is presenthere, some imported symbols can be rede�ned as local symbols.IMPORT:<<p1,DesignParameters>,<p2,FunctionsToolbox>>;DEF xSeq = p1:xSeq; DEF ySeq = p1:ySeq; DEF height = p1:height; DEF Q= p2:Q;DEF floor = STRUCT:< (Q:xSeq * Q:ySeq),(Q:<(-~S1):xSeq,(p2:ButFirstButLast):xSeq> * (Q~AA:-):ySeq) >;DEF beamsPillars = @1:(floor * Q:height);DEF myFloor = STRUCT:<EMBED:1:floor,beamsPillars>;DEF BuildingSK = (p2:Stack):myFloor:(p1:nFloors);Minkowski package In order to generate the solid model shown in various following Figures, itis necessary to import a specialized package Minkowski where is maintained the PLaSM implemen-tation of a general approach to extrusion, sweeping, o�set and Minkowski sums of cell-decomposed8

Figure 4: Three views of the schematic buiding interior from decreasing distances.

Figure 5: Integration of the preliminary design with the tower rigid kernel. (a) wire-frame; (b) solidmodel generated by applying the offset operator to the wire-frame; (c) building envelope.9

dimension-independent linear polyhedra described in [4]. Notice in particular that to generate thesolid model of the building starting from the wire-frame, it is su�cient to evaluate again the de�nitionof beamsPillars, where the OffSet operator is applied to the function body previously de�ned:IMPORT:<<Op,Minkowski>>;DEF beamsPillars = (Op:OffSet:<0.2,0.2,-0.4>~@1):(floor * Q:height);Kernel layout package (stairs+elevators) The two rigid kernels of the tower, each one consti-tuted by the concrete envelopes of two elevators and by two spiral stairs, is supposed to be developedby a di�erent design team. The corresponding code might so enter a di�erent package. Here the stepsize and number are de�ned, so to generate both a single stair ramp and a doubleStair assembly.The double concrete envelope of elevators is de�ned by the envelopes function. The stairCasefunction aggregates the various components from local coordinates using translations.IMPORT:<<params,DesignParameters>,<funs,FunctionsToolbox>>;DEF nstep = 12;DEF zstep = (params:height)/(nstep*2);DEF stair (x,y,z::IsReal)(n::IsInt) =(funs:MultiStack):<3,1>:(CUBOID:<x,y,z>):n;DEF doubleStair = STRUCT:<stair:<0.25,1,zstep>:nstep, T:2:5, S:3:-1,stair:<0.25,1,zstep>:nstep >;DEF envelopes =@1:((funs:Q):(nstep*0.25)*(funs:Q):<2,2>)*(funs:Q):(params:height);DEF stairCase = STRUCT:<(EMBED:1~CUBOID):<1.5,6>,T:1:1.5,T:2:1:envelopes,doubleStair,T:<1,3>:<nstep*0.25,nstep*zstep>,(EMBED:1~CUBOID):<1,6> >;DEF doubleStairCase = stairCase RIGHT (funs:mirror):1:stairCase;DEF fullStairCase = (funs:Stack):doubleStairCase:(params:nFloors);The last functions in this package generate a doubleStairCase starting from stairCase and itsmirrored instance, and generate the rigid kernel of the tower by the function fullStairCase. Thegeneration process of this model is displayed in Figure 6.Curtain walls package Another package is developed by a di�erent designer (or team) in orderto describe the curtain walls of the tower building. As above, the given code correspond to thepreliminary design of the external building envelope, where the main design decision about shape are10

taken. After the client approval, the design may be detailed simply by substituing the panel cataloquepackage by a more detailed version. The aggregation code shown below may remain almost unchangedeven in the �nal building model. The catalogue of di�erent panels, shown in Figure 8 is given in theAppendix.IMPORT:<<p1,DesignParameters>,<p2,FunctionsToolbox>,<p3,Panels>>;% Definitions scheme, just for simplicityDEF panel1 = p3:panel1; DEF panel2 = p3:panel2; DEF panel3 = p3:panel3;DEF panel4 = p3:panel4; DEF panel5 = p3:panel5; DEF panel6 = p3:panel6;DEF xSeq = p1:xSeq; DEF ySeq = p1:ySeq; DEF height = p1:height;DEF nFloors= p1:nFloors;% End of schemeDEF Stripe (obj::IsPol)(coord::IsInt)(n::IsInt) =(p2:multistack):<coord>:obj:n;DEF Stripe1x = Stripe:panel1:1:(3*3);DEF Stripe2x = Stripe:panel2:1:(3*3);DEF Stripe3x = Stripe:panel3:1:3;DEF Stripe4x = STRUCT:< Stripe7,T:1:((+~AA:ABS):xSeq - width7), Stripe7 >;DEF Stripe4 = Stripe:panel4:1:2;DEF Stripe5 = Stripe:panel5:1:2;DEF Stripe6 = Stripe:panel6:1:2;DEF Stripe7 = (R:<2,3>:(PI/2)~EMBED:1):panel7;DEF Stripe1y = STRUCT:< Stripe4, T:1:((+~AA:ABS~[s1,s2,s3]):ySeq), Stripe4 >;DEF Stripe2y = STRUCT:< Stripe5, T:1:((+~AA:ABS~[s1,s2,s3]):ySeq), Stripe5 >;DEF Stripe3y = STRUCT:< Stripe6, T:1:((+~AA:ABS~[s1,s2,s3]):ySeq), Stripe6 >;Finally, the external envelope is generated by properly aggregating some panel stripes for eachbuilding side, and then aggregating such stripe sets at an higher hierarchical level.DEF SouthWall = (R:<2,3>:(PI/2)~EMBED:1~STRUCT):<Stripe2x, T:2:height, Stripe3x, T:2:height, Stripe:Stripe1x:2:17,T:2:(height*17), Stripe3x >;DEF WestWall = (R:<1,2>:(PI/2)~R:<2,3>:(PI/2)~EMBED:1~STRUCT):< Stripe2y,T:2:height, Stripe3y, T:2:height, Stripe:Stripe1y:2:17,T:2:(height*17), Stripe3y >;DEF OtherWalls = STRUCT:< T:2:(S1:ySeq + S2:ySeq), Stripe:Stripe4x:3:20,T:2:((-~S3):ySeq), Stripe:Stripe4x:3:20 >;DEF NorthWall = T:2:((+~AA:ABS):ySeq):SouthWall;DEF EasthWall = T:1:((+~AA:ABS):xSeq):WestWall;DEF Envelope = STRUCT:<SouthWall,NorthWall,WestWall,EasthWall,OtherWalls>;11

Model aggregation The building model is �nally assembled by aggregating the BuildingSK skele-ton and two properly located instances of fullStairCase.IMPORT:<<p1,DesignParameters>,<p2,FloorLayout>,<p3,KernelLayout>>;DEF myBuilding = STRUCT:< p2:BuildingSK,T:<1,2>:<tx1,ty1>:(p3:fullStairCase),T:<1,2>:<tx2,ty1>:(p3:fullStairCase) >WHEREtx1 = S1:(p1:xSeq) - size:1:(p3:doubleStairCase),ty1 = (S1 + S2):(p1:ySeq),tx2 = (+~TAIL~REVERSE):(p1:xSeq)END;

centeringFigure 6: Pictures of the bottom-up design process of the rigid tower kernel. From left to right andfrom top to bottom: (a) stairCase from bottom; (b) stairCase from top; (c) doubleStairCasefrom top; (d) and (e) fullStairCase .12

Figure 7: Views of the building front at encreasing distances. The brousing of the model was donewith a standard web browser and a VRML plug-in.

Figure 8: (a) Catalogue of courtain panels developed in the preliminary design of the external buildingenvelope; (b) preliminary check of the visual e�ects of a partition of the wall.13

References[1] V. Anupam and C. Bajaj. Collaborative Multimedia Scienti�c Design in SHASTRA. IEEEMultimedia, pages 39{49, 1994.[2] V. Anupam and C. Bajaj. SHASTRA - An Architecture for Development of Collaborative Appli-cations. International Journal of Intelligent and Cooperative Information Systems, pages 155{172,1994.[3] V. Anupam, C. Bajaj, F. Bernardini, S. Cutchin, J. Chen, D. Schikore S. Evans, G. Xu, andP. Zhang. Scienti�c Problem Solving in a Distributed and Collaborative Environment. Mathe-matics and Computers in Simulation, 36:433 { 542, 1994.[4] V.Pascucci ans C.Sansoni A.Paoluzzi. Prototype shape modeling with a design language. InProceedings of the Sixth Int. Conf. on Computer-Aided Architectural Design Futures, pages 59{78, 1995.[5] C. Bajaj and S. Cutchin. Web based collaboration aware synthetic environments. In Proc.of TeamCAD Gvu/Nist Workshop on Collaborative Design, pages 143{150, May 1997. ed. J.Rossignac.[6] J.E. Baldeschwieler, R. D. Blumofe, and E. A. Brewer. ATLAS: An Infrasturcture for GlobalComputing. In Proc. of the 7th ACM SIGOPS European Workshop: Systems support for World-wide applications, Septemeber 1996.[7] A. Baratloo, M. Karaul, H. Karl, and Z. Kedem. KnittingFactory: An Infrastructure for Dis-tributed Web Applications. Technical Report Technical Report TR 1997-748, New York Univer-sity, November 1997.[8] A. Baratloo, M. Karaul, Z. Kedem, and P. Wycko�. Charlotte: metacomputing on the Web. InK. Yetongnon and S. Hariri, editors, Proceedings of the ISCA International Conference. Paralleland Distributed Computing Systems, Dijon, France, 25{27 September, 1996, volume 1, pages 2{??, Raleigh, NC, USA, 1996. International Society of Computers and Their Applications (ISCA).[9] Lukasz Beca, Gang Cheng, Geo�rey C. Fox, Tomasz Jurga, Konrad Olszewski, Marek Podgorny,Piotr Sokolowski, Tomasz Stachowiak, and Krzysztof Walczak. Tango - a collaborative environ-ment for the world-wide web. Technical report, Northeast Parallel Architectures Center, SyracuseUniversity.[10] R. Bentley, T. Horstmann, K. Sikkel, and J. Trevor. Supporting Collaborative InformationSharing with the World Wide Web: The BSCW Shared Workspace System. In Proceedings of theFifth Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 1996.[11] Luca Cardelli. Obliq a language with distributed scope. Digital Equipment Corporation, 1994.[12] Annie Chabert, Ed Grossman, Larry S. Jackson, Stephen R. Pietrowiz, and Chris Seguin. Javaobject-sharing in Habanero. Communications of the ACM, 41(6):69{76, June 1998.14

[13] K. Mani Chandy, Adam Rifkin, Paolo A.G. Sivilotti, Jacob Mandelson, Matthew Richardson,Wesley Tanaka, and Luke Weisman. A world-wide distributed system using java and the inter-net. In IEEE International Symposium on High Performance Distributed Computing (HPDC-5),August 1996.[14] S. Dossick and G. Kaiser. WWW Access to Legacy Client/Server Applicatons. Technical ReportCUCS-003-96, Columbia University, 1996.[15] A. Paoluzzi F. Bernardini, V. Ferrucci and V.Pascucci. Product operator on cell complexes. InSecond Symposium on Solid Modeling and Applications, pages 43{52, May 19-21 1993.[16] Adam J. Ferrari. JPVM: Network parallel computing in java. Technical Report CS-97-29, Depart-ment of Computer Science, University of Virginia, December 8 1997. Fri, 12 Dec 1997 18:18:40GMT.[17] V.Pascucci V. Ferrucci and A. Paoluzzi. Dimension-independent convex-cell based hpc: Skeletonsand product. International Journal of Shape Modeling, pages 37{67, 1996.[18] I. Foster and C. Kesselman. Globus: A metacomputing infrastructure toolkit. The Interna-tional Journal of Supercomputer Applications and High Performance Computing, 11(2):115{128,Summer 1997.[19] T. Frivold, R. Lang, and M. Fong. Extending WWW for Synchronous Collaboration. In Pro-ceedings of the Second World Wide Web Conference'94: Mosaic and the Web, 1994.[20] B. Kvande. The Java Collaborator Toolset, a Collaborator Platform for the Java(tm) Environ-ment. Master's thesis, Old Dominion University, August 1996. master's thesis.[21] Michael J. Lewis and Andrew Grimshaw. The Core Legion Object Model. In Proceedings ofthe Fifth IEEE International Symposium on High Performance Distributed Computing. IEEEComputer Society Press, August 1996.[22] A. Paoluzzi and V.Pascucci. Building design programming with a functional language. In Pro-ceedings of 6th Conference on Computing in Civil and Building Engineering. Bauforum, Berlin,1995.[23] A. Paoluzzi V. Pascucci and M. Vicentino. Geometric programming. a programming approachto geometric design. ACM Transactions on Graphics, pages 266{306, July 1995.[24] M. Philippsen and M. Zenger. JavaParty{Transparent Remote Objects in Java. In Proc of theACM PPoPP Workshop on Java for Science and Engineering Computaton, June 1997.[25] V. Ferrucci V.Pascucci and A. Paoluzzi. Dimension-independent convex-cell based hpc: Rep-resentation scheme and implementation issues. In C. Ho�mann and J. Rossignac Eds., editors,Solid Modeling '95, Third ACM/IEEE Symposium on Solid Modeling and Applications, pages163{174. ACM Press, 1995.[26] J. Backus J.H. Williams E.L. Wimmers. An introduction to the programming language . Re-search Topics in Functional Programming, 1990.15

A AppendixA.1 Panel PackageThe Panel package is used to introduce a cataloque of prede�ned courtain panels. The (simpli�ed)geometry of each panel is generated making use of the Panel function. The semantics of such functionis the following: each panel is generated in 2D by giving two sequences of (signed) reals correspondingto x and y measures of the panel grid. Positive and negative numbers respectively introduce solid andempty panes in the panel grid. The whole panel catalogue is shown in Figure 8.IMPORT:<<p1,DesignParameters>,<p2,FunctionsToolbox>,<p3,KernelLayout>>;DEF Q = p2:Q;DEF Panel (xRithm,yRithm::IsSeqOf:IsReal) = STRUCT:<Q:xRithm * Q:yRithm, Q:xVoid * Q:yRithm,Q:xRithm * Q:yVoid , @1:(Q:xVoid * Q:yVoid) >WHERExVoid = AA:-:xRithm, yVoid = AA:-:yRithmEND;DEF panel1 = Panel:<<x1,-:x2,x2,-:x2,x1>,<y1,-:y2,-:y3,y4>>WHEREx1 = S1:(p1:xSeq) / 24, x2 = 2*x1,y1 = 1.2, y2 = ((p1:height) - y1) / 2,y3 = ((p1:height) - y1 - y2) / 3, y4 = (p1:height) - (y1 + y2 + y3)END;DEF panel2 = Panel:<<x1,-:x1,-4*x1,-:x1,x1>,<-:y1,y2>>WHEREx1 = S1:(p1:xSeq) / 24, y1 = (p1:height) - 0.3, y2 = (p1:height) - y1END;DEF panel3 = Panel:<<x1,-:x2,-:x2,-:x2,-:x2,x1>,<y1,-:y1,y2>>WHEREx1 = S1:(p1:xSeq) / 24, x2 = (S1:(p1:xSeq) - 2*x1)/4,y1 = (p1:height) - 2, y2 = y1END;DEF panel4 = Panel:<<x1,-:x2,2*x1,-:x2,x1>,<y1,-:y2,-:y3,y4>>WHEREx1 = S1:(p1:xSeq) / 24, x2 = (S1:(p1:ySeq) - 4*x1)/2, y1 = 1.2,y2 = ((p1:height) - y1) / 2, y3 = ((p1:height) - y1 - y2) / 3,y4 = (p1:height) - (y1 + y2 + y3)END;DEF panel5 = Panel:<<x1,-:x2,-:x2,2*x1,-:x2,-:x2,x1>,<-:y1,y2>>WHEREx1 = S1:(p1:xSeq) / 24, x2 = (S1:(p1:ySeq) - 4*x1)/4,y1 = (p1:height) - 0.3, y2 = (p1:height) - y116

END;DEF panel6 = Panel:<<x1,-:x2,-:x2,-:x2,x1>,<y1,-:y1,y2>>WHEREx1 = S1:(p1:xSeq) / 24, x2 = (S1:(p1:ySeq) - 2*x1)/3,y1 = (p1:height) - 2, y2 = y1END;DEF width7 = S1:(p1:xSeq) - SIZE:1:(p3:doubleStairCase);DEF panel7 = Q:x * Q:yWHEREx = width7, y = p1:heightEND;

Figure 9: (a) Top view of the tower; close view of the envelope.

Figure 10: (a) Close view of the corner; (b) view of some bottom oors.17


Recommended