Pivy - Embedding a Dynamic Scripting Language Into a Scene Graph Library

Total Page:16

File Type:pdf, Size:1020Kb

Pivy - Embedding a Dynamic Scripting Language Into a Scene Graph Library DIPLOMARBEIT Pivy - Embedding a Dynamic Scripting Language into a Scene Graph Library ausgef¨uhrt am Institut f¨ur Interaktive Mediensysteme der Technischen Universit¨atWien unter Anleitung von Univ.Prof. Dipl.-Ing. Dr.techn. Dieter Schmalstieg und Mag. Dr.techn. Hannes Kaufmann als verantwortlich mitwirkendem Universit¨atsassistenten, sowie unter Mitbetreuung von Dipl.-Ing. Dr.techn. Gerhard Reitmayr, durch Tamer Fahmy Urbarialgasse 1 A-2422 Pama Matrikelnummer: 9526976 Datum Unterschrift Abstract This thesis presents the design and implementation of “Pivy”: a Python language binding for the Coin scene graph library. Pivy allows for development of Coin applications in Python, interactive modification of Coin programs from within the Python interpreter at runtime and incorporation of Scripting Nodes – capable of executing Python code and callback functions – into the scene graph. Coin is a high-level 3D graphics toolkit for developing cross-platform real-time 3D visualization and visual simulation software; Coin’s properties and features are e.g. suitable for application development in the Augmented Reality (AR) domain. We differentiate between extending and embedding the Python interpreter. To create a Python extension, a C wrapper needs to be written and built as a shared library; Python then imports and makes use of this shared library at runtime. Different Python wrapping techniques and approaches – from manual wrapping to automatic wrapper generators such as SWIG – with a special focus upon large C++ libraries/frameworks applicable for Python are compared. The opposite direction is called embedding, where already existing Coin applications or libraries (written in C++) are given direct access to the Python interpreter. Both use cases are showcased and their distinction explained through Python applications using Pivy and the special SoPyScript scene graph node which has been created to allow Python code to be embedded into a regular scene graph and executed during traversal of the same. The SoPyScript scene graph node is making use of both extending and embedding techniques; it is based upon ideas of the VRML JavaScript node and can be used from either Python or C++ applications. Furthermore, the suitability and benefits of dynamically typed “scripting” languages over statically typed “system programming” languages such as C++ for Rapid Application Devel- opment (RAD) and Rapid Application Prototyping (RAP) are analyzed and demonstrated. Keywords: 3D Graphics, Augmented Reality, Scripting Language, C++, Python, Coin, Open Inventor, Rapid Application Development, Rapid Application Prototyping I Kurzfassung Die vorliegende Arbeit stellt das Design und die Implementierung von Pivy vor, einer Python- Anbindung f¨urdie Szenengraph-Bibliothek Coin. Coin ist eine plattformunabh¨angige 3D-Graphik-Bibliothek, deren hoher Abstraktionsgrad die Entwicklung von Echtzeit-Visualisierungssoftware, z.B. im Bereich von Augmented Re- ality (AR), erleichtert. Pivy erlaubt die Entwicklung von Coin-Applikationen in Python und macht es m¨oglich, Coin-Programme aus dem Python-Interpreter zur Laufzeit interaktiv zu modifizieren sowie Skript-Knoten, die Python-Code und Callback-Funktionen ausf¨uhren k¨onnen, in den Szenengraph einzuf¨ugen. Grunds¨atzlich sind zwei verschiedene Arten der Anbindung zu unterscheiden: die Erweiterung (“extension”) des Python-Interpreters und seine direkte Einbindung (“embedding”). Eine Python-Erweiterung ben¨otigteinen C-Wrapper in Form einer gemeinsam genutzten Biblio- thek, die von Python zur Laufzeit geladen und verwendet wird. Verschiedene Techniken und Ans¨atze– von der manuellen Generierung bis zur automatischen Erstellung durch Gen- eratoren wie SWIG – werden vorgestellt und verglichen. Das Hauptaugenmerk liegt dabei auf der Erweiterung von Python durch grosse C++-Bibliotheken. Umgekehrt ist es auch m¨oglich, bestehenden Coin-Applikationen oder -Bibliotheken, die in C++ geschrieben sind, durch Einbindung des Python-Interpreters direkt Zugang zu diesem zu geben. Beide Anwendungsf¨allewerden beschrieben und die Unterschiede zwischen ihnen erl¨autert. Dies geschieht anhand von Python-Applikationen, die Pivy verwenden, sowie insbesondere am Beispiel des SoPyScript-Knoten, der es erlaubt, Python-Code in einen regul¨arenSzenengraph einzubetten und bei der Traversierung auszuf¨uhren. Der SoPyScript-Knoten verwendet beide Techniken (Erweiterung und Einbindung); er basiert auf der Idee und dem Design des VRML JavaScript-Knoten und kann wie dieser sowohl von Python- wie auch C++-Applikationen verwendet werden. Des weiteren enth¨altdie Arbeit auch eine Betrachtung der grundlegenden Einsatzm¨oglichkeit von dynamisch typisierten Skriptsprachen zur schnellen Entwicklung von Applikationen und/oder Prototypen – Rapid Application Development (RAD), Rapid Application Prototyping (RAP) – und den Vorteilen von Skriptsprachen gegenueber statisch typisierten “Systemprogram- mierungssprachen” wie C++. II Acknowledgements I am full of love, so here is whom I’d like to thank: Mervat and Mohamed, my parents, for all their support and love in all those years and without whom I could have never achieved anything. Dalia and Rascha, my two sisters, who always assisted me in difficult times and greatly enriched my life. Prof. Dieter Schmalstieg, my supervisor, for giving me the opportunity to work as an undergraduate research assistant in his group at Vienna University of Technology; there I had the unique chance to learn the fundamentals of scientific work and research in the exciting field of Augmented Reality and was allowed to work on the creation of Pivy. Gerhard Reitmayr, guru and supervisor, for his invaluable help, suggestions for improve- ments, many insightful discussions which greatly influenced the design of Pivy, memorable and very enjoyable coding sessions and in general for allowing me to watch and learn from a brilliant researcher at work. The former VRGroup at Vienna University of Technology, namely Istv´anBarakonyi, Hannes Kaufmann, Florian Ledermann, Joseph Newman, Thomas Pintaric, Thomas Psik, Daniel Wagner for making our group an interesting and enjoyable workplace. Systems in Motion for all the support over all those years, without Pivy would not have been what it is today; especially Lars J. Aas, Peder Blekken, Morten Eriksen and Marius Kintel. Michael Kalkusch, who apart from being a marvelous friend over all those years, introduced me to computer graphics, making it accessible to me through his unique skill of explaining even the most complex topic in a very simple and graspable fashion (sometimes by abusing my cigarette packet and Zippo lighter to enhance his 3D explanations. ). Karin Kosina, for being such a lovely friend during all those years, making my life interesting and exciting again and who showed me that there seems to be vivid life and still sunlight on this planet outside the sphere of computer screens by opening the jalousie of my window (and forcing me to look out of my then monitor-lit room. ). Omar Medani, for dragging me with him through our study, making it so much more enjoyable and for sharing some of the most memorable and unforgettable moments in my life (from killing ourselves side by side in hopeless and lost soccer matches to taking part in mission impossible exams ;)) and being the splendid friend he was and is for so many years. III Andreas Pongratz, who helped me through troubled times in life, making math accessible to me (and showing me that there is a whole universe full of “exact definition” pitfalls hiding behind unsuspiciously simple equations such as a + b = c, ∀a, b, c ∈ C) and for being such a wonderful, reliable, altruistic friend always willing to help (and never minding to plainly name things the way they are). Very special thanks to Oyvind Rideng for his enduring patience, providing me with all the time and support I needed to finish this thesis and pushing me into the right direction when my motivation was wearing off. I’d like to thank P˚al-Robert Engnæs, who read my thesis while it was in progress and provided me with printouts containing valuable comments, feedback, suggestions for improve- ments and most importantly very constructive criticism. Of course, I cannot leave this section without at least mentioning Herbert and Gerhard Aguinaga, Maresa Dormann, Robert Fuchs, Elham Hedayati Rad, Karyn Laudisi, Barbara Langm¨uller, Herbert Schneeweiß, Terje Wiesener and all of my other friends and supporters (who got not mentioned here, because of my supervisors impatiently waiting for me to finish this thesis. *shrug*). Anyways, you know who you are! Thanks so much to all of you! IV Pivy - Embedding a Dynamic Scripting Language into a Scene Graph Library Contents 1 Introduction 1 1.1 System programming and dynamic scripting languages ............. 1 1.1.1 Contribution ................................ 4 1.2 Deficiencies of system programming languages .................. 5 1.2.1 RAP/RAD and interpreted environments for interactive 3D applications 6 1.2.2 The benefits of a Python binding ..................... 6 1.3 Development history ................................ 8 2 Related work 9 2.1 Existing 3D graphics APIs ............................. 9 2.1.1 Immediate vs. retained mode APIs .................... 9 2.2 Open Inventor/Coin - a high-level 3D graphics toolkit ............. 12 2.2.1 Overview of the Open Inventor/Coin API ................ 12 2.2.2 Scripting in Open Inventor/Coin ..................... 17 2.3 Python - a dynamic general purpose programming language .......... 20 2.3.1 Overview
Recommended publications
  • Learn Python the Hard Way
    ptg11539604 LEARN PYTHON THE HARD WAY Third Edition ptg11539604 Zed Shaw’s Hard Way Series Visit informit.com/hardway for a complete list of available publications. ed Shaw’s Hard Way Series emphasizes instruction and making things as ptg11539604 Zthe best way to get started in many computer science topics. Each book in the series is designed around short, understandable exercises that take you through a course of instruction that creates working software. All exercises are thoroughly tested to verify they work with real students, thus increasing your chance of success. The accompanying video walks you through the code in each exercise. Zed adds a bit of humor and inside jokes to make you laugh while you’re learning. Make sure to connect with us! informit.com/socialconnect LEARN PYTHON THE HARD WAY A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code Third Edition ptg11539604 Zed A. Shaw Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.
    [Show full text]
  • Open Inventor Toolkit ACADEMIC PROGRAM FAQ Updated June 2018
    Open Inventor Toolkit ACADEMIC PROGRAM FAQ Updated June 2018 • How can my organization qualify for this program ? • What support will my organization get under this program ? • How can I make an application available to collaborators • Can I use Open Inventor Toolkit in an open source project ? • What can I do with Open Inventor Toolkit under this program ? • What are some applications of Open Inventor Toolkit ? • What's the value of using Open Inventor Toolkit ? • What is Thermo Fisher expecting from my organization in exchange for the ability to use Open Inventor Toolkit free of charge ? • How does Open Inventor Toolkit relate to visualization applications ? • Can I use Open Inventor Toolkit to extend visualization applications ? • What languages, platforms and compilers are supported by Open Inventor Toolkit ? • What are some key features of Open Inventor Toolkit ? How can my organization qualify for this program ? Qualified academic and non-commercial organizations can apply for the Open Inventor Toolkit Academic Program. Through this program, individuals in your organization can be granted Open Inventor Toolkit development and runtime licenses, at no charge, for non-commercial use. Licenses provided under the Open Inventor Toolkit Academic Program allow you to both create and distribute software applications based on Open Inventor Toolkit. However, your application must be distributed free-of-charge for educational or research purposes. Your application must not generate commercial revenue nor be deployed by a corporation for in-house use nor be used in any other commercial manner Contact your account manager and we will provide you with more information on the details to qualify for this program.
    [Show full text]
  • Top-Down Archaeology with a Geometric Language
    483 Computer-Aided Design and Applications © 2008 CAD Solutions, LLC http://www.cadanda.com Top-Down Archaeology with a Geometric Language Dario Lucia*, Francesco Martire*, Alberto Paoluzzi* and Giorgio Scorzelli* *Università degli Studi “Roma Tre”, {lucia, martire, paoluzzi, scorzell}@dia.uniroma3.it Fig. 1: (a) 2D map of the Palatino hill in Rome; (b) the 3D PLaSM reconstruction of the emperor’s palace (Domus Flavia, Domus Augustana and Hippodrome of Domitian). ABSTRACT In this paper we discuss a fast reconstruction of an archaeological site consisting of many different and connected parts. In particular, we discuss the geometric reconstruction of the Domus Flavia and the Domus Augustana, both built by Emperor Domitian on the Palatine hill in Rome, including the adjacent Hippodromus. The Domus Flavia was the official part of the palace, while the Domus Augustana was the emperor’s luxurious private residence. They are the most impressive ruins remaining today on the Palatine. The aim of this paper is to introduce the reader to the power of generative semantics, and to show how fast and easy is the generation of complex VR models if using a generative language. For this purpose, we capitalize on a novel parallel framework for high- performance solid and geometric modeling, that (a) compiles the generating expressions of the model into a dataflow network of concurrent threads, and (b) splits the model into fragments to be distributed to computational nodes and generated independently. We trust that both the language and its kernel are suitable for Cell-BE (Broadband Engine) implementation, that someone believes the reference architecture for advanced modeling, imaging and simulation of next years.
    [Show full text]
  • Open Inventor® 3D Graphics Toolkit for Industrial-Strength Application Development
    DataSheet Open Inventor® 3D Graphics Toolkit for Industrial-Strength Application Development • Speed up your application design, development and maintenance cycles • Increase your performance with advanced 3D visualization and programming • Protect your investment by abstracting low-level, underlying graphics technology • Rely on advanced support of leading open standards Open Inventor® is an object-oriented, cross-platform 3D Open Inventor® delivers enhanced productivity, performance, graphics toolkit for the development of industrial-strength, flexibility and reliability for development of your most demanding interactive, 3D graphics applications using C++, .NET or Java. applications that require robust and evolutionary technologies to meet the highest challenges in 3D visualization. Open Inventor® provides the power and functionality of OpenGL® at an object-oriented level. The easy-to-use API, extensible architecture, and large set of advanced components provide developers with a high-level platform for rapid prototyping and development of high-end, advanced 3D graphics applications. Core Features Object-Oriented 3D API Open Inventor® offers a comprehensive object-oriented set (more than 1300 ready- to-use classes) integrated in a user-friendly framework for rapid development. The scene graph paradigm provides ready-to-use graphics programming patterns, and the object-oriented design encourages extensibility and customization to satisfy specific requirements. Open Inventor® is the most widely used scene graph API in the developer community. Optimized 3D Rendering Open Inventor® has been tuned for improved performance by utilizing the latest relevant OpenGL® features and extensions, automatically taking care of OpenGL® optimization techniques to provide a much higher-level programming interface. Advanced Support of OpenGL® Shaders OpenGL® shader rendering techniques can be applied to any Open Inventor® shape to further enhance the 3D visual experience by using special effects.
    [Show full text]
  • Algebraic Methods for Geometric Modeling Julien Wintz
    Algebraic Methods for Geometric Modeling Julien Wintz To cite this version: Julien Wintz. Algebraic Methods for Geometric Modeling. Mathematics [math]. Université Nice Sophia Antipolis, 2008. English. tel-00347162 HAL Id: tel-00347162 https://tel.archives-ouvertes.fr/tel-00347162 Submitted on 14 Dec 2008 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Universit´ede Nice Sophia-Antipolis Ecole´ Doctorale STIC THESE` Pr´esent´ee pour obtenir le titre de : Docteur en Sciences de l’Universit´ede Nice Sophia-Antipolis Sp´ecialit´e: Informatique par Julien Wintz Algebraic Methods for Geometric Modeling Soutenue publiquement `al’INRIA le 5 Mai 2008 devant le jury compos´ede : Pr´esident : Andr´e Galligo Universit´ede Nice, France Rapporteurs : Gershon Elber Technion, Israel Tor Dokken Sintef, Norway Examinateurs : Pascal Schreck Universit´eLouis Pasteur, France Christian Arber Missler, France Directeur : Bernard Mourrain Inria Sophia-Antipolis, France Algebraic methods for geometric modeling Julien Wintz Abstract The two fields of algebraic geometry and algorithmic geometry, though closely related, are traditionally represented by almost disjoint communi- ties. Both fields deal with curves and surfaces but objects are represented in different ways. While algebraic geometry defines objects by the mean of equations, algorithmic geometry use to work with linear models.
    [Show full text]
  • Symantec Web Security Service Policy Guide
    Web Security Service Policy Guide Version 6.10.4.1/OCT.12.2018 Symantec Web Security Service/Page 2 Policy Guide/Page 3 Copyrights Copyright © 2018 Symantec Corp. All rights reserved. Symantec, the Symantec Logo, the Checkmark Logo, Blue Coat, and the Blue Coat logo are trademarks or registered trademarks of Symantec Corp. or its affiliates in the U.S. and other coun- tries. Other names may be trademarks of their respective owners. This document is provided for informational purposes only and is not intended as advertising. All warranties relating to the information in this document, either express or implied, are disclaimed to the maximum extent allowed by law. The information in this document is subject to change without notice. THE DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. SYMANTEC CORPORATION SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE. Symantec Corporation 350 Ellis Street Mountain View, CA 94043 www.symantec.com Policy Guide/Page 4 Symantec Web Security Service Policy Guide The Symantec Web Security Service solutions provide real-time protection against web-borne threats. As a cloud-based product, the Web Security Service leverages Symantec's proven security technology as well as the WebPulse™ cloud com- munity of over 75 million users.
    [Show full text]
  • Symantec Web Security Service Policy Guide
    Web Security Service Policy Guide Revision: NOV.07.2020 Symantec Web Security Service/Page 2 Policy Guide/Page 3 Copyrights Broadcom, the pulse logo, Connecting everything, and Symantec are among the trademarks of Broadcom. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. Copyright © 2020 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. For more information, please visit www.broadcom.com. Broadcom reserves the right to make changes without further notice to any products or data herein to improve reliability, function, or design. Information furnished by Broadcom is believed to be accurate and reliable. However, Broadcom does not assume any liability arising out of the application or use of this information, nor the application or use of any product or circuit described herein, neither does it convey any license under its patent rights nor the rights of others. Policy Guide/Page 4 Symantec WSS Policy Guide The Symantec Web Security Service solutions provide real-time protection against web-borne threats. As a cloud-based product, the Web Security Service leverages Symantec's proven security technology, including the WebPulse™ cloud community. With extensive web application controls and detailed reporting features, IT administrators can use the Web Security Service to create and enforce granular policies that are applied to all covered users, including fixed locations and roaming users. If the WSS is the body, then the policy engine is the brain. While the WSS by default provides malware protection (blocks four categories: Phishing, Proxy Avoidance, Spyware Effects/Privacy Concerns, and Spyware/Malware Sources), the additional policy rules and options you create dictate exactly what content your employees can and cannot access—from global allows/denials to individual users at specific times from specific locations.
    [Show full text]
  • Openscenegraph 3.0 Beginner's Guide
    OpenSceneGraph 3.0 Beginner's Guide Create high-performance virtual reality applications with OpenSceneGraph, one of the best 3D graphics engines Rui Wang Xuelei Qian BIRMINGHAM - MUMBAI OpenSceneGraph 3.0 Beginner's Guide Copyright © 2010 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: December 2010 Production Reference: 1081210 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-849512-82-4 www.packtpub.com Cover Image by Ed Maclean ([email protected]) Credits Authors Editorial Team Leader Rui Wang Akshara Aware Xuelei Qian Project Team Leader Reviewers Lata Basantani Jean-Sébastien Guay Project Coordinator Cedric Pinson
    [Show full text]
  • Realidad Aumentada Como Estrategia Didáctica En Curso De Ciencias Naturales De Estudiantes De Quinto Grado De Primaria De La Institución Educativa Campo Valdés
    REALIDAD AUMENTADA COMO ESTRATEGIA DIDÁCTICA EN CURSO DE CIENCIAS NATURALES DE ESTUDIANTES DE QUINTO GRADO DE PRIMARIA DE LA INSTITUCIÓN EDUCATIVA CAMPO VALDÉS OSCAR MAURICIO BUENAVENTURA BARON UNIVERSIDAD DE MEDELLIN ESPECIALIZACION EN INGENIERIA DE SOFTWARE COHORTE VI MEDELLIN 2014 REALIDAD AUMENTADA COMO ESTRATEGIA DIDÁCTICA EN CURSO DE CIENCIAS NATURALES DE ESTUDIANTES DE QUINTO GRADO DE PRIMARIA DE LA INSTITUCIÓN EDUCATIVA CAMPO VALDÉS OSCAR MAURICIO BUENAVENTURA BARON Requisito para optar al grado de Especialista en Ingeniería de Software Asesor EDWIN MAURICIO HINCAPIÉ MONTOYA UNIVERSIDAD DE MEDELLIN ESPECIALIZACION EN INGENIERIA DE SOFTWARE COHORTE VI MEDELLIN 2014 Nota de aceptación: ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Firma presidente de jurado ___________________________________ Firma del jurado ___________________________________ Firma del jurado 3 Con todo mi cariño y mi amor para las personas que hicieron todo en la vida para que yo pudiera lograr mis sueños, por motivarme y darme la mano cuando sentía que el camino se terminaba, a ustedes por siempre mi corazón y mi gratitud. Mamá, Papá, Tía y Tocayo 4 TABLA DE CONTENIDO RESUMEN ...........................................................................................................................................9 INTRODUCCION .............................................................................................................................
    [Show full text]
  • Archive and Compressed [Edit]
    Archive and compressed [edit] Main article: List of archive formats • .?Q? – files compressed by the SQ program • 7z – 7-Zip compressed file • AAC – Advanced Audio Coding • ace – ACE compressed file • ALZ – ALZip compressed file • APK – Applications installable on Android • AT3 – Sony's UMD Data compression • .bke – BackupEarth.com Data compression • ARC • ARJ – ARJ compressed file • BA – Scifer Archive (.ba), Scifer External Archive Type • big – Special file compression format used by Electronic Arts for compressing the data for many of EA's games • BIK (.bik) – Bink Video file. A video compression system developed by RAD Game Tools • BKF (.bkf) – Microsoft backup created by NTBACKUP.EXE • bzip2 – (.bz2) • bld - Skyscraper Simulator Building • c4 – JEDMICS image files, a DOD system • cab – Microsoft Cabinet • cals – JEDMICS image files, a DOD system • cpt/sea – Compact Pro (Macintosh) • DAA – Closed-format, Windows-only compressed disk image • deb – Debian Linux install package • DMG – an Apple compressed/encrypted format • DDZ – a file which can only be used by the "daydreamer engine" created by "fever-dreamer", a program similar to RAGS, it's mainly used to make somewhat short games. • DPE – Package of AVE documents made with Aquafadas digital publishing tools. • EEA – An encrypted CAB, ostensibly for protecting email attachments • .egg – Alzip Egg Edition compressed file • EGT (.egt) – EGT Universal Document also used to create compressed cabinet files replaces .ecab • ECAB (.ECAB, .ezip) – EGT Compressed Folder used in advanced systems to compress entire system folders, replaced by EGT Universal Document • ESS (.ess) – EGT SmartSense File, detects files compressed using the EGT compression system. • GHO (.gho, .ghs) – Norton Ghost • gzip (.gz) – Compressed file • IPG (.ipg) – Format in which Apple Inc.
    [Show full text]
  • Getting Started First Steps with Mevislab
    Getting Started First Steps with MeVisLab 1 Getting Started Getting Started Published April 2009 Copyright © MeVis Medical Solutions, 2003-2009 2 Table of Contents 1. Before We Start ..................................................................................................................... 1 1.1. Welcome to MeVisLab ................................................................................................. 1 1.2. Coverage of the Document .......................................................................................... 1 1.3. Intended Audience ....................................................................................................... 1 1.4. Requirements .............................................................................................................. 2 1.5. Conventions Used in This Document ............................................................................ 2 1.5.1. Activities ........................................................................................................... 2 1.5.2. Formatting ........................................................................................................ 2 1.6. How to Read This Document ....................................................................................... 2 1.7. Related MeVisLab Documents ..................................................................................... 3 1.8. Glossary (abbreviated) ................................................................................................. 4 2. The Nuts
    [Show full text]
  • Perry L Miller IV 724-309-7201 [email protected]
    Perry L Miller IV 724-309-7201 [email protected] Areas of Interest Computer Graphics as it applies to Computer Aided Design (CAD), Engineering (CAE), Scientific Visualization, and Geographic Information Systems (GIS); Browser-based 3D (WebGL); Software Engineering principles and best practices; Non-Uniform Rational B-Splines (NURBS). Education Iowa State University of Science and Technology, Ames, Iowa. Doctor of Philosophy, Mechanical Engineering, December 2000. Thesis: Blade geometry description using B-Splines and general surfaces of revolution. Advisor: Dr. James H. Oliver Iowa State University of Science and Technology, Ames, Iowa. Master of Science, Mechanical Engineering, August 1995. Thesis: Interactive turbomachinery blade modeler. Advisor: Dr. James H. Oliver University of Pittsburgh, Pittsburgh, Pennsylvania Bachelor of Science, Mechanical Engineering, December 1992. Experience ESI Group, Farmington Hills, MI. Senior Software Engineering. Apr 2015 – Present. • Front-end developer specializing in 3D visualization of Computer Aided Design (CAD) and Computer Aided Engineering (CAE) data in the browser using WebGL. • Furthering the development of Ciespace's WebGL-based 3D viewer to enable integration into ESI's products that run in the browser or on the desktop using Electron (e.g., ESI-Player). • Daily use of WebGL, Node.js, Webpack, React, as well as familiarity with (and occasional use of) React-Native and Redux. • Often use Node.js or C++ to make supporting command-line utilities, most of which convert 3D CAD formats into the viewer's JSON-based model file. Ciespace Corporation, Pittsburgh, PA. Senior Software Engineer. Oct 2011 – Apr 2015. • Developed WebGL-based 3D viewer for Computer Aided Engineering (CAE) product that runs in modern browsers.
    [Show full text]