A High-Level Pedagogical 3D Modeling Language and Framework

Total Page:16

File Type:pdf, Size:1020Kb

A High-Level Pedagogical 3D Modeling Language and Framework A High-Level Pedagogical 3D Modeling Language and Framework Filipe André Cabecinhas May 14, 2010 1 Introduction architects must be taught how to program. In the past, traditional architecture avoided com- There has been an increasing effort on provid- plex geometric objects due to the lack of tools and ing architects with programming background, by excessive cost of materials and parts which had to teaching them how to program and how to use be made specifically to build these objects. Nowa- these modeling tools. However, the programming days, with computer aided design (CAD) and com- focus has been mostly on automating simple te- puter aided manufacturing (CAM) tools, it is pos- dious tasks, such as long sequences of commands. sible to mass-produce unique parts for roughly the same cost of producing the same quantity of iden- tical parts [7], thus allowing a higher degree of free- This thesis presents the VisualScheme program- dom to the architect. ming language, which intends to be a 3D model- We believe architects should be able to express ing language oriented to architects. This program- themselves and realize their vision, whatever that ming language is a domain specific language (DSL) may be. And, to model shapes based on mathemat- for 3D modeling built on top of the Scheme pro- ical functions, architects must use programming gramming language. VisualScheme provides mech- tools to aid them in building the desired model. It anisms for a programmer to define a 3D model of is known that most vanguardist buildings such as an object and then export it to a visualization pro- the “Pála Siza Vieira”, from Portugal’s Expo 098 gram (the worker program). This 3D model is not pavilion or the Guggenheim museums’ buildings in composed of the definition of all the object’s ver- Bilbao and New York are usually based on well- texes or triangles, but as a tree of high-level prim- defined mathematical functions that can be com- itives and operations which will then be passed to puted, meaning that those buildings can be gener- a back-end which will convert the tree of primitives ated programmatically. and operations to the commands to be sent to the Experimentation is another important require- worker program. ment that justifies the programmatic generation of forms: when idealizing the form of a complex geo- This paper comprises 6 sections: section 1 in- metric object, the designer may want to experiment troduces the work and presents its goals. The re- with different parameters for its components. How- lated work is presented in section 2 and the four ever, with a programmatic approach, an architect main stages of this project in section ??. Section 3 may design a fully-parametrized object definition presents the language proposed here, called Visu- and then just change the parameters until the gen- alScheme, describing the technical aspects related erated form satisfies the initial vision. to the implementation of the language, and how Nowadays architects need to hire a group of pro- a VisualScheme program is organized. Section 4 grammers if they want to model a complex, out of presents a case study (the Gare do Oriente model) the ordinary shape. This solution is costly and may with VisualScheme, and compares it to a solution cause a mismatch between what the architect en- in Grasshopper. Finally, section 5 concludes the visioned and the end result. To solve this problem, thesis and suggests some guidelines for future work. 1 1.1 Technical Contributions AutoLISP scripts to automate some simple repet- itive tasks. These tasks are usually very easy to With this work we designed and implemented the accomplish either by hand or by programming. VisualScheme programming language with facili- With AutoLISP, programmers can write a script ties for modeling 3D objects, as well as a back- that uses AutoCAD’s API to manipulate objects in endfor AutoCAD. The language allows an architect a document. An AutoLISP script has access to a with average programming skills and a familiarity large number of AutoCAD’s object creation func- with CAD tools the ability to produce complex ob- tions, including functions to create primitive geo- jects. This language will be able to export its ob- metric objects like circles, lines, spheres, poly-lines jects to several formats, maximizing the rewards of and text. And operations on those objects, such as learning it by allowing the programmer to export unions, intersections and subtractions. AutoCAD’s to whatever format the client desires. objects are also available in AutoLISP, represented We also took into account pedagogical aspects as entities. like the students’ needs, as this language is aimed at classroom and industry usage. The language was tested by students throughout its development 2.1.1 Conclusions stages, which helped understand where inexperi- Being the most used CAD program in the world, enced users have more difficulty. AutoCAD and its programmability features must be taken into account for this work. Despite show- ing its age, AutoLISP is still used by many groups 2 Related Work of people with disparate programming skills, for automating all kinds of tasks in AutoCAD. Al- In the following sections, several existing 3D mod- though widely used, its potential is very under- eling programming languages will be analyzed from utilised. Many architects either don’t know it’s the programmer’s point of view. available or only use it by emulating what they A program that draws a set of Greek columns would do manually. was written in every analyzed language so as to compare the languages and their pragmatics. 2.2 Generative Modeling Language 2.1 AutoLISP and Visual LISP The Generative Modeling Language (GML)4 is a simple stack-based language for describing 3D ob- Autodesk™1 is one of the leading vendors of jects. Traditionally, lists of geometric primitives architecture-related software in the world. Its Au- are used to model 3D objects. Instead, with a gen- toCAD®2 line of products is one of the oldest and erative approach [11], geometric models are created most widely used in the area of CAD. 3 by composing operations and the design becomes AutoLISP® [3] is a Lisp-based programming focused on rules for transforming primitive objects language with a small kernel and a large set of instead of focusing on combining these primitives. geometric primitives used in AutoCAD for script- GML is a PostScript based language which ex- based geometric modeling. AutoLISP was designed tends it with a set of operations, from vector alge- to be used in conjunction with CAD tools like Au- bra to the handling of polygons, including several toCAD to automate repetitive tasks or to be used conversions [6]. Being a postfix language, it’s not when precision is of the utmost importance and the very easy to learn to someone who is not famil- manual tools don’t fit the job.. iarised with programming, in general, at least. Most architects only use AutoCAD with its point-and-click interface or, for the few (compara- tively) of those that use AutoLISP, have some small 2.2.1 Conclusions 1http://autodesk.com Despite being an unusual programming language 2http://autodesk.com/autocad (due to being stack-based), GML can accomplish 3http://usa.autodesk.com/adsk/servlet/index? siteID=123112&id=1911627 4http://www.generative-modeling.org/ 2 what it’s designed to: Being a terse postfix pro- out of David Buck’s hobby ray-tracer, DKB- gramming language, which enables programmers t Trace [15]. With its large comprehensive library of describe shapes with relative ease and without hav- objects, colors, textures, and many available special ing to model every used mesh. By modeling the effects and rendering effects, POV-Ray is one of the objects using a high-level language, GML doesn’t most widely used ray-tracers around the world, and need as much information as a mesh-based program has a very large community 7 where users can find to store the objects. help. 2.3 Programming LAnguage for 2.4.1 Scene Description Language Solid Modeling POV-Ray’s Scene Description Language (SDL) is a Turing-complete language that allows a program- The Programming LAnguage for Solid Modeling mer to describe the world in an efficient and read- (PLaSM) is a functional programming language able way. The scene description language is a very based on IBM’s®5 FL [1] programming language. basic language with support for abstraction mech- It is a functional design language for geometric and anisms (e.g. macros and functions). It’s mostly a solid parametric design developed at the Roma Tre declarative language, which means most of the ob- and La Sapienza universities [13, 12]. jects are defined at one time in the program execu- PLaSM takes on a programming approach to tion and aren’t modified afterwards. generative modeling, where geometric objects are generated by composing functions using the lan- guage’s operators. It has a dimension-independent 2.4.2 Conclusions approach to geometric representation. PLaSM has POV-Ray is a very good ray-tracer with a very support for higher-order functions in the FL style helpful community built around it. It is capable of so, one way to look at it, is to see PLaSM as a generating very high-quality photo-realistic render- geometric domain-specific language (DSL) for FL. ings with small scripts due to its big high-quality No free nesting of scopes or pattern matching is al- object and texture library. The language in itself is lowed in PLaSM although an identifier can name declarative, although some support for imperative any language object. programming is present, in the form of macros.
Recommended publications
  • Luna Moth: Supporting Creativity in the Cloud
    Pedro Alfaiate Instituto Superior Técnico / Luna Moth INESC-ID Inês Caetano Instituto Superior Técnico / INESC-ID Supporting Creativity in the Cloud António Leitão Instituto Superior Técnico / INESC-ID 1 ABSTRACT Algorithmic design allows architects to design using a programming-based approach. Current algo- 1 Migration from desktop application rithmic design environments are based on existing computer-aided design applications or building to the cloud. information modeling applications, such as AutoCAD, Rhinoceros 3D, or Revit, which, due to their complexity, fail to give architects the immediate feedback they need to explore algorithmic design. In addition, they do not address the current trend of moving applications to the cloud to improve their availability. To address these problems, we propose a software architecture for an algorithmic design inte- grated development environment (IDE), based on web technologies, that is more interactive than competing algorithmic design IDEs. Besides providing an intuitive editing interface which facilitates programming tasks for architects, its performance can be an order of magnitude faster than current aalgorithmic design IDEs, thus supporting real-time feedback with more complex algorithmic design programs. Moreover, our solution also allows architects to export the generated model to their preferred computer-aided design applications. This results in an algorithmic design environment that is accessible from any computer, while offering an interactive editing environment that inte- grates into the architect’s workflow. 72 INTRODUCTION programming languages that also support traceability between Throughout the years, computers have been gaining more ground the program and the model: when the user selects a component in the field of architecture. In the beginning, they were only used in the program, the corresponding 3D model components are for creating technical drawings using computer-aided design highlighted.
    [Show full text]
  • 3D Modeling: Surfaces
    CS 430/536 Computer Graphics I Overview • 3D model representations 3D Modeling: • Mesh formats Surfaces • Bicubic surfaces • Bezier surfaces Week 8, Lecture 16 • Normals to surfaces David Breen, William Regli and Maxim Peysakhov • Direct surface rendering Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel University 1 2 http://gicl.cs.drexel.edu 1994 Foley/VanDam/Finer/Huges/Phillips ICG 3D Modeling Representing 3D Objects • 3D Representations • Exact • Approximate – Wireframe models – Surface Models – Wireframe – Facet / Mesh – Solid Models – Parametric • Just surfaces – Meshes and Polygon soups – Voxel/Volume models Surface – Voxel – Decomposition-based – Solid Model • Volume info • Octrees, voxels • CSG • Modeling in 3D – Constructive Solid Geometry (CSG), • BRep Breps and feature-based • Implicit Solid Modeling 3 4 Negatives when Representing 3D Objects Representing 3D Objects • Exact • Approximate • Exact • Approximate – Complex data structures – Lossy – Precise model of – A discretization of – Expensive algorithms – Data structure sizes can object topology the 3D object – Wide variety of formats, get HUGE, if you want each with subtle nuances good fidelity – Mathematically – Use simple – Hard to acquire data – Easy to break (i.e. cracks represent all primitives to – Translation required for can appear) rendering – Not good for certain geometry model topology applications • Lots of interpolation and and geometry guess work 5 6 1 Positives when Exact Representations Representing 3D Objects • Exact
    [Show full text]
  • The Parametric Façade Optimization in Architecture Through a Synthesis of Design, Analysis and Fabrication
    The Parametric Façade Optimization in Architecture through a Synthesis of Design, Analysis and Fabrication by Peter C. Graham A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master of Architecture Waterloo, Ontario, Canada, 2012 © Peter C. Graham 2012 Author’s Declaration I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I understand that my thesis may be made electronically available to the public. ii Abstract Modular building systems that use only prefabricated parts, sometimes known as building “kits”, first emerged in the 1830s and 1840s in the form of glass and iron roof systems for urban transportation and distribution centers and multi-storey façade systems. Kit systems are still used widely today in the form of curtain wall assemblies for office and condominium towers, yet in all this time the formal flexibility of these systems (their ability to form complex shapes) has not increased greatly. This is in large part due to the fact that the systems still rely on mass-produced components. This lack of flexibility limits the degree to which these systems can be customized for particular contexts and optimized for such things as daylighting or energy efficiency. Digital design and fabrication tools now allow us to create highly flexible building façade systems that can be customized for different con- texts as well as optimized for particular performance objectives. This thesis develops a prototype for a flexible façade system using parametric modeling tools.
    [Show full text]
  • Full Body 3D Scanning
    3D Photography: Final Project Report Full Body 3D Scanning Sam Calabrese Abhishek Gandhi Changyin Zhou fsmc2171, asg2160, [email protected] Figure 1: Our model is a dancer. We capture his full-body 3D model by combining image-based methods and range scanner, and then do an animation of dancing. Abstract Compared with most laser scanners, image-based methods using triangulation principles are much faster and able to provide real- In this project, we are going to build a high-resolution full-body time 3D sensing. These methods include depth from motion [Aloi- 3D model of a live person by combining image-based methods and monos and Spetsakis 1989], shape from shading [Zhang et al. laser scanner methods. A Leica 3D range scanner is used to obtain 1999], depth from defocus/focus [Nayar et al. 1996][Watanabe and four accurate range data of the body from four different perspec- Nayar 1998][Schechner and Kiryati 2000][Zhou and Lin 2007], and tives. We hire a professional model and adopt many measures to structure from stereo [Dhond and Aggarwal 1989]. They often re- minimize the movement during the long laser-scanning. The scan quire the object surface to be textured, non-textured, or lambertian. data is then sequently processed by Cyclone, MeshLab, Scanalyze, These requirements often make them impractical in many cases. VRIP, PlyCrunch and 3Ds Max to obtain our final mesh. We take In addition, image-based methods usually cannot give a precision three images of the face from frontal and left/right side views, and depth estimation since they do patch-based analysis.
    [Show full text]
  • Bonus Ch. 2 More Modeling Techniques
    Bonus Ch. 2 More Modeling Techniques When it comes to modeling in modo, the sky is the limit. This book is designed to show you all of the techniques available to you, through written word and visual examples on the DVD. This chapter will take you into another project, in which you’ll model a landscape. From there, you’ll texture it, and later you’ll add the environment. You’ll see how modo’s micro polygon displacement works and how powerful it is. From there, you’ll create a cool toy gun. The techniques used in this project will show you how to create small details that make the model come to life. Then, you’ll learn to texture the toy gun to look like real plastic. Building a Landscape Landscapes traditionally have been a chore for 3D artists. This is because to prop- erly create them, you need a lot of geometry. A lot of geometry means a lot of polygons, and a lot of polygons means a lot of render time. But the team at Luxology has introduced micro polygon displacement in modo 201/202, allow- ing you to create and work with simple objects, but render with millions of poly- gons. How is this possible? The micro polygon displacement feature generates additional polygons at render time. The goal is that finer details can be achieved without physically modeling them into the base object. You can then add to the details achieved through micro poly displacements with modo’s bump map capabilities and generate some terrific-looking models.
    [Show full text]
  • Digital Sculpting with Zbrush
    DIGITAL SCULPTING WITH ZBRUSH Vincent Wang ENGL 2089 Discourse Analysis 2 ZBrush Analysis Table of Contents Context ........................................................................................................................... 3 Process ........................................................................................................................... 5 Analysis ........................................................................................................................ 13 Application .................................................................................................................. 27 Activity .......................................................................................................................... 32 Works Cited .................................................................................................................. 35 3 Context ZBrush was created by the Pixologic Inc., which was founded by Ofer Alon and Jack Rimokh (Graphics). It was first presented in 1999 at SIGGRAPH (Graphics). Version 1.5 was unveiled at the MacWorld Expo 2002 in New York and SIGGRAPH 2002 in San Antonio (Graphics). Pixologic, the company describes the 3D modeling software as a “digital sculpting and painting program that has revolutionized the 3D industry…” (Pixologic). It utilizes familiar real-world tools in a digital environment, getting rid of steep learning curves and allowing the user to be freely creative instead of figuring out all the technical details. 3D models that are created in
    [Show full text]
  • 3D Modeling and the Role of 3D Modeling in Our Life
    ISSN 2413-1032 COMPUTER SCIENCE 3D MODELING AND THE ROLE OF 3D MODELING IN OUR LIFE 1Beknazarova Saida Safibullaevna 2Maxammadjonov Maxammadjon Alisher o’g’li 2Ibodullayev Sardor Nasriddin o’g’li 1Uzbekistan, Tashkent, Tashkent University of Informational Technologies, Senior Teacher 2Uzbekistan, Tashkent, Tashkent University of Informational Technologies, student Abstract. In 3D computer graphics, 3D modeling is the process of developing a mathematical representation of any three-dimensional surface of an object (either inanimate or living) via specialized software. The product is called a 3D model. It can be displayed as a two-dimensional image through a process called 3D rendering or used in a computer simulation of physical phenomena. The model can also be physically created using 3D printing devices. Models may be created automatically or manually. The manual modeling process of preparing geometric data for 3D computer graphics is similar to plastic arts such as sculpting. 3D modeling software is a class of 3D computer graphics software used to produce 3D models. Individual programs of this class are called modeling applications or modelers. Key words: 3D, modeling, programming, unity, 3D programs. Nowadays 3D modeling impacts in every sphere of: computer programming, architecture and so on. Firstly, we will present basic information about 3D modeling. 3D models represent a physical body using a collection of points in 3D space, connected by various geometric entities such as triangles, lines, curved surfaces, etc. Being a collection of data (points and other information), 3D models can be created by hand, algorithmically (procedural modeling), or scanned. 3D models are widely used anywhere in 3D graphics.
    [Show full text]
  • Ecaade 2021 Towards a New, Configurable Architecture, Volume 1
    eCAADe 2021 Towards a New, Configurable Architecture Volume 1 Editors Vesna Stojaković, Bojan Tepavčević, University of Novi Sad, Faculty of Technical Sciences 1st Edition, September 2021 Towards a New, Configurable Architecture - Proceedings of the 39th International Hybrid Conference on Education and Research in Computer Aided Architectural Design in Europe, Novi Sad, Serbia, 8-10th September 2021, Volume 1. Edited by Vesna Stojaković and Bojan Tepavčević. Brussels: Education and Research in Computer Aided Architectural Design in Europe, Belgium / Novi Sad: Digital Design Center, University of Novi Sad. Legal Depot D/2021/14982/01 ISBN 978-94-91207-22-8 (volume 1), Publisher eCAADe (Education and Research in Computer Aided Architectural Design in Europe) ISBN 978-86-6022-358-8 (volume 1), Publisher FTN (Faculty of Technical Sciences, University of Novi Sad, Serbia) ISSN 2684-1843 Cover Design Vesna Stojaković Printed by: GRID, Faculty of Technical Sciences All rights reserved. Nothing from this publication may be produced, stored in computerised system or published in any form or in any manner, including electronic, mechanical, reprographic or photographic, without prior written permission from the publisher. Authors are responsible for all pictures, contents and copyright-related issues in their own paper(s). ii | eCAADe 39 - Volume 1 eCAADe 2021 Towards a New, Configurable Architecture Volume 1 Proceedings The 39th Conference on Education and Research in Computer Aided Architectural Design in Europe Hybrid Conference 8th-10th September
    [Show full text]
  • Using Depth Cameras for Dense 3D Modeling of Indoor Environments
    RGB-D Mapping: Using Depth Cameras for Dense 3D Modeling of Indoor Environments Peter Henry1, Michael Krainin1, Evan Herbst1, Xiaofeng Ren2, Dieter Fox1;2 Abstract RGB-D cameras are novel sensing systems that capture RGB images along with per-pixel depth information. In this paper we investigate how such cam- eras can be used in the context of robotics, specifically for building dense 3D maps of indoor environments. Such maps have applications in robot navigation, manip- ulation, semantic mapping, and telepresence. We present RGB-D Mapping, a full 3D mapping system that utilizes a novel joint optimization algorithm combining visual features and shape-based alignment. Visual and depth information are also combined for view-based loop closure detection, followed by pose optimization to achieve globally consistent maps. We evaluate RGB-D Mapping on two large indoor environments, and show that it effectively combines the visual and shape informa- tion available from RGB-D cameras. 1 Introduction Building rich 3D maps of environments is an important task for mobile robotics, with applications in navigation, manipulation, semantic mapping, and telepresence. Most 3D mapping systems contain three main components: first, the spatial align- ment of consecutive data frames; second, the detection of loop closures; third, the globally consistent alignment of the complete data sequence. While 3D point clouds are extremely well suited for frame-to-frame alignment and for dense 3D reconstruc- tion, they ignore valuable information contained in images. Color cameras, on the other hand, capture rich visual information and are becoming more and more the sensor of choice for loop closure detection [21, 16, 30].
    [Show full text]
  • 3D Computer Graphics Compiled By: H
    animation Charge-coupled device Charts on SO(3) chemistry chirality chromatic aberration chrominance Cinema 4D cinematography CinePaint Circle circumference ClanLib Class of the Titans clean room design Clifford algebra Clip Mapping Clipping (computer graphics) Clipping_(computer_graphics) Cocoa (API) CODE V collinear collision detection color color buffer comic book Comm. ACM Command & Conquer: Tiberian series Commutative operation Compact disc Comparison of Direct3D and OpenGL compiler Compiz complement (set theory) complex analysis complex number complex polygon Component Object Model composite pattern compositing Compression artifacts computationReverse computational Catmull-Clark fluid dynamics computational geometry subdivision Computational_geometry computed surface axial tomography Cel-shaded Computed tomography computer animation Computer Aided Design computerCg andprogramming video games Computer animation computer cluster computer display computer file computer game computer games computer generated image computer graphics Computer hardware Computer History Museum Computer keyboard Computer mouse computer program Computer programming computer science computer software computer storage Computer-aided design Computer-aided design#Capabilities computer-aided manufacturing computer-generated imagery concave cone (solid)language Cone tracing Conjugacy_class#Conjugacy_as_group_action Clipmap COLLADA consortium constraints Comparison Constructive solid geometry of continuous Direct3D function contrast ratioand conversion OpenGL between
    [Show full text]
  • Extents and Limitations of 3D Computer Models for Graphic Analysis of Form and Space in Architecture SALEH UDDIN, Mohammed University of Missouri-Columbia, U.S.A
    Go to contents 18 Extents and Limitations of 3D Computer Models for Graphic Analysis of Form and Space in Architecture SALEH UDDIN, Mohammed University of Missouri-Columbia, U.S.A. http://web.missouri.edu/~envugwww/faculty.html http://web.missouri.edu/~uddinm This paper investigates the strength and limitations of basic 3D diagrammatic models and their related motion capabilities in the context of graphic analysis. The focus of such analysis is to create a computer based environment to represent visual analysis of architectural form and space. The paper highlights the restrictions that were found in a specific 3D-computer model environment to satisfy a basic diagrammatic need for analysis. Motion related features that take into account of parametric changes are also investigated to help enhance representation of analytic models. Acknowledging the restrictions, it can be stated that computational media are the only ones at present that can create an interactive multimedia format using components constructed through various computational techniques Keywords: 3D Model, Analytic Diagram, Motion Model, Form Analysis, Design Principles. Analysis points’ and also supported the theoretical model. Throughout history, the notion of ‘precedent’ has Thus, it can be said that an analysis is an abstract always provided conceptual models to serve the quest process of simplification that reduces a total work into for appropriate architectural forms. It is a relatively its essential elements. In architecture, the primary goal recent phenomenon that considers architecture of a design analysis and its representation is to expose through a veil of literary metaphors. Since the end the underlying concept, organizational pattern, design product of architecture is a built outcome, the most characteristics, and ‘tectonics’ through simplified basic theoretical stance must be supported in turn by diagrams.
    [Show full text]
  • Innovations in Building Energy Modeling
    Innovations in Building Energy Modeling Research and Development Opportunities Report for Emerging Technologies November 2020 Innovations in Building Energy Modeling: Research and Development Opportunities Report Disclaimer This work was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor any of their employees, nor any of their contractors, subcontractors or their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or any third party’s use or the results of such use of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof or its contractors or subcontractors. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof, its contractors or subcontractors. ii Innovations in Building Energy Modeling: Research and Development Opportunities Report Acknowledgments Prepared by Amir Roth, Ph.D. Special thanks to the following individuals and groups. Robert Zogg and Emily Cross of Guidehouse (then Navigant Consulting) conducted the interviews, organized the stakeholder workshops, and wrote the first DRAFT BEM Roadmap. Janet Reyna of NREL (then an ORISE Fellow at BTO) provided extensive feedback on the initial DRAFT BEM Roadmap and helped create the organization for the subsequent DRAFT BEM Research and Development Opportunities (RDO) document.
    [Show full text]