“A distributed 3D graphics library” by MacIntyre and Feiner

  • ©Blair MacIntyre and Steven K. Feiner




    A distributed 3D graphics library



    We present Repo-3D, a general-purpose, object-oriented library for developing distributed, interactive 3D graphics applications across a range of heterogeneous workstations. Repo-3D is designed to make it easy for programmers to rapidly build prototypes using a familiar multi-threaded, object-oriented programming paradigm. All data sharing of both graphical and non-graphical data is done via general-purpose remote and replicated objects, presenting the illusion of a single distributed shared memory. Graphical objects are directly distributed, circumventing the “duplicate database” problem and allowing programmers to focus on the application details. Repo-3D is embedded in Repo, an interpreted, lexically-scoped, distributed programming language, allowing entire applications to be rapidly prototyped. We discuss Repo-3D’s design, and introduce the notion of local variations to the graphical objects, which allow local changes to be applied to shared graphical structures. Local variations are needed to support transient local changes, such as highlighting, and responsive local editing operations. Finally, we discuss how our approach could be applied using other programming languages, such as Java.


    1. D.B. Anderson, J. W. Barrus, J. H. Howard, C. Rich, C. Shen, and R. C. Waters. Building Multi-User Interactive Multimedia Environments at MERL. Technical Report Research Report TR95-17, Mitsubishi Electric Research Laboratory, November 1995.
    2. H. Bal, M. Kaashoek, and A. Tanenbaum. Orca: A Language for Parallel Programming of Distributed Systems. IEEE Transactions on Software Engineering, 18(3): 190-205, March 1992.
    3. K. Bharat and L. Cardelli. Migratory Applications. In A CM UIST ’95, pages 133-142, November 1995.
    4. K.P. Birman. The Process Group Approach to Reliable Distributed Computing. CACM, 36(12):36-53, Dec 1993.
    5. A. Birrell, G. Nelson, S. Owicki, and E. Wobber. Network Objects. In Proc. 14th ACM Symp. on Operating Systems Principles, 1993.
    6. A Butz, Animation with CATHI, In Proceedings of AAAI/IAAI ’97, pages 957-962, 1997.
    7. J. Calvin, A. Dickens, B. Gaines, P. Metzger, D. Miller, and D. Owen. The SIMNET Virtual World Architecture. In Proc. IEEE VRAIS ’93, pages 450-455, Sept 1993.
    8. L. Cardelli. A Language with Distributed Scope. Computing Systems, 8(1):27-59, Jan 1995.
    9. L. Cardelli and A. Gordon. Mobile Ambients. In Foundations of Software Science and Computational Structures, Maurice Nivat (Ed.), LNCE 1378, Springer, 140-155. 1998.
    10. R. Carey and G. Bell. The Annotated VRML 2.0 Reference Manual. Addison-Wesley, Reading, MA, 1997.
    11. C. Carlsson and O. Hagsand. DIVE–A Multi-User Virtual Reality System. In Proc. IEEE VRAIS ’93, pages 394-400, Sept 1993.
    12. C.F. Codella, R. Jalili, L. Koved, and J. B. Lewis. A Toolkit for Developing Multi-User, Distributed Virtual Environments. In Proc. IEEE VRAIS ’93, pages 401.407, Sept 1993.
    13. C. Elliott, G. Schechter, R. Yeung and S. Abi-Ezzi. TBAG: A High Level Framework for Interactive, Animated 3D Graphics Applications, In Proc. A CM SIGGRAPH 94, pages 421-434, August, 1994.
    14. M. Fairen and A. Vinacua, ATLAS, A Platform for Distributed Graphics Applications, In Proc. VI Eurographics Workshop on Programming Paradigms in Graphics, pages 91-102, September, 1997.
    15. S. Feiner, B. MacIntyre, M. Haupt, and E. Solomon. Windows on the World: 2D Windows for 3D Augmented Reality. In Proc. A CM UIST ’93, pages 145-155, 1993.
    16. T.A. Funkhouser. RING: A Client-Server System for Multi-User Virtual Environments. In Proc. 1995 ACM Symp. on Interactive 3D Graphics, pages 85-92, March 1995.
    17. G. Grimsdale. dVS–Distributed Virtual Environment System. In Proc. Computer Graphics ’91 Conference, 1991.
    18. S.P. Harbison. Modula-3. Prentice-Hall, 1992.
    19. H.W. Holbrook, S.K. Singhal and D.R. Cheriton, Log-Based Receiver-Reliable Multicast for Distributed Interactive Simulation, Proc. ACM SIGCOMM ’95, pages 328-341, 1995.
    20. W. Levelt, M. Kaashoek, H. Bal, and A. Tanenbaum. A Comparison of Two Paradigms for Distributed Shared Memory. Software Practice and Experience, 22(11):985-1010, Nov 1992.
    21. B. Lucas. A Scientific Visualization Renderer. In Proc. IEEE Visualization ’92, pp. 227-233, October 1992.
    22. V. Machiraju, A Framework for Migrating Objects in Distributed Graphics Applications, Masters Thesis, University of Utah, Department of Computer Science, Salt Lake City, UT, June, 1997.
    23. B. MacIntyre. Repo: Obliq with Replicated Objects. Programmers Guide and Reference Manual. Columbia University Computer Science Department Research Report CUCS-023-97, 1997. }
    24. B. MacIntyre, and S. Feiner. Language-level Support for Exploratory Programming of Distributed Virtual Environments. In Proc. ACM UIST ’96, pages 83-94, Seattle, WA, November 6-8, 1996.
    25. M.A. Najork and M. H. Brown. Obliq-3D: A High-level, Fast-turnaround 3D Animation System. IEEE Transactions on Visualization and Computer Graphics, 1(2): 175-145, June 1995.
    26. R. Ben-Natan. CORBA: A Guide to the Common Object Request Broker Architecture, McGraw Hill, 1995.
    27. D. Phillips, M. Pique, C. Moler, J. Torborg, D. Greenberg. Distributed Graphics: Where to Draw the Lines? Panel Transcript, SIGGRAPH 89, available at: http://www.siggraph.org:443/publications/panels/siggraphi89/
    28. A. Prakash and H. S. Shim. DistView: Support for Building Efficient Collaborative Applications Using Replicated Objects. In Proc. A CM CSCW ’94, pages 153-162, October 1994.
    29. J. Rohlf and J. Helman, IRIS Performer: A High Performance Multiprocessing Toolkit for Real-Time {3D} Graphics, In Proc. ACM SIGGRAPH 94, pages 381-394, 1994.
    30. M. Roseman and S. Greenberg. Building Real-Time Groupware with GroupKit, a Groupware Toolkit. ACM Transactions on Computer- Human Interaction, 3(1):66-106, March 1996.
    31. C. Shaw and M. Green. The MR Toolkit Peers Package and Experiment. In Proc. IEEE VRAIS ’93, pages 18-22, Sept 1993.
    32. G. Singh, L. Serra, W. Png, A. Wong, and H. Ng. BrickNet: Sharing Object Behaviors on the Net. In Proc. IEEE VRAIS ’95, pages 19-25, 1995.
    33. H. Sowizral, K. Rushforth, and M. Deering. The Java 3D API Specification, Addison-Wesley, Reading, MA, 1998.
    34. M. Stefik, G. Foster, D.G. Bobrow, K. Kahn, S. Lanning, and L. Suchman. Beyond The Chalkboard: Computer Support for Collaboration and Problem Solving in Meetings. CACM, 30(1):32- 47, January 1987.
    35. P.S. Strauss and R. Carey, An Object-Oriented 3D Graphics Toolkit, In Computer Graphics (Proc. ACM SIGGRAPH 92), pages 341-349, Aug, 1992.
    36. Sun Microsystems, Inc. The Java Shared Data Toolkit, 1998. Unsupported software, available at: http://developer.javasoft.com/developer/earlyAccess/jsdt/
    37. I. Tou, S. Berson, G. Estrin, Y. Eterovic, and E. Wu. Prototyping Synchronous Group Applications. IEEE Computer, 27(5):48-56, May 1994.
    38. R. Waters and D. Anderson. The Java Open Community Version 0.9 Application Program Interface. Feb, 1997. Available online at: http ://www.merl.com/opencom/opencom-j ava-api.html
    39. A. Wollrath, R. Riggs, and J. Waldo. A Distributed Object Model for the Java System, In Proc. USENIX COOTS ’96, pages 219-231, July 1996.
    40. R. Zeleznik, D. Conner, M. Wloka, D. Aliaga, N. Huang, P. Hubbard, B. Knep, H. Kaufman, J. Hughes, and A. van Dam. An Object-oriented Framework for the Integration of Interactive Animation Techniques. In Computer Graphics (SIGGRAPH ’91 Proceedings), pages 105-112, July, 1991.
    41. M.J. Zyda, D. R. Pratt, J. G. Monahan, and K. P. Wilson. NPSNET: Constructing a 3D Virtual World. In Proc. 1992 ACM Syrup. on Interactive 3D Graphics, pages 147-156, Mar. 1992.

ACM Digital Library Publication:

Overview Page: