3D graphics in Erlang Jakob Cederlund -

Slides:



Advertisements
Similar presentations
What is an operating system? Is it software?
Advertisements

Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Website design basics QUME Learning objectives Understand the basic elements of a Web page and how it is produced Be aware of different approaches.
DEPARTMENT OF COMPUTER ENGINEERING
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
Status – Week 291 Victor Moya. Tracing 3D applications Three layers or levels for tracing: Three layers or levels for tracing: 3D Appl API Driver GPU.
Mobile Application Development
Chapter 3.2 C++, Java, and Scripting Languages hacked by jeffery.
Introduction to OpenGL. What is OpenGL OpenGL is a low-level software interface to graphics hardware No commands for performing windowing tasks or obtaining.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
Chapter 5 System Software.
PHP Scripting Language. Introduction “PHP” is an acronym for “PHP: Hypertext Preprocessor.” It is an interpreted, server-side scripting language. Originally.
Operating Systems.
Development of mobile applications using PhoneGap and HTML 5
An ide for teaching and learning prolog
Standardize on Team Foundation Server across the enterprise with Teamprise Corey Steffen General Manager
CSE328:Computer Graphics OpenGL Tutorial Dongli Zhang Department of Computer Science, SBU Department of Computer Science, Stony.
Linux Operations and Administration
Antigone Engine Kevin Kassing – Period
Thinh Nguyen Spring Thinh Nguyen 5 th year undergrad Dustbusters – Spring 2013.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
HDVC & Client Reflector server SIP Server User management HDVC & Client.
IT Essentials 1 v4.0 Chapters 4 & 5 JEOPARDY RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands.
CCP4mg Liz Potterton, Stuart McNicholas, Martin Noble, Jan Gruber.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
CHAPTER FOUR COMPUTER SOFTWARE.
Introduction to Interactive Media Interactive Media Tools: Software.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
Linux Audio Mangler Project Design Presentation Yu Chong Hector Urtubia Tony Zuliani.
Android for Java Developers Denver Java Users Group Jan 11, Mike
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Geant4 Installation Supported platforms:  Scientific Linux with gcc 4.1.2/4.6  Mac Os X 10.7 and 10.8 with gcc 4.21  Windows7 with Visual Studio.
CS 11 java track: lecture 1 Administrivia need a CS cluster account cgi-bin/sysadmin/account_request.cgi need to know UNIX
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
Introduction to OpenGL Programming Jian-Liang Lin 2002.
Eagle: Maturation and Evolution 17th Annual Tcl Conference Joe Mistachkin.
XGL: X11 replacement ? O.Couet, ROOT meeting 11/07/2006.
CPSC 453 Tutorial Xin Liu Sep 23, OpenGL An open standard of rendering pipeline A software interface to graphics hardware A useful set of APIs for.
OPERATING SYSTEM - program that is loaded into the computer and coordinates all the activities among computer hardware devices. -controls the hardware.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
 Installation of Android Development Environment  Creating the App with OpenGL ES API  Running the App on Emulator Android App Development.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
Rujchai Ung-arunyawee Department of Computer Engineering Khon Kaen University.
Mobile: Today and Beyond Stuart Parmenter, Director of Mobile
PhpMyAdmin Matthew Walsh April 28, 2003 CMSC Shawn Sivy.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
ITP 109 Week 2 Trina Gregory Introduction to Java.
COMPARING CROSS-PLATFORM DEVELOPMENT APPROACHES FOR MOBILE APPLICATIONS Henning Heitkötter, Sebastian Hanschke and Tim A. Majchrzak Department of Information.
OPERATING SYSTEMS (OS) By the end of this lesson you will be able to explain: 1. What an OS is 2. The relationship between the OS & application programs.
OpenGL: The Open Graphics Language Technology and Historical Overview By Ricardo Veguilla.
Game programming 1.
Unit 20 – Computer Game Platforms & Technology – Software Technology
Khang Lam Daniel Limas Kevin Castillo Juan Battini
Android Studio, Android System Basics and Git
Information Communication and Technology Services
Web App vs Mobile App.
Sergiy Radyakin The World Bank
Unit 20 – Computer Game Platforms & Technology – Software Technology
Computer Science I CSC 135.
Unit 20 Software Part 2.
Unit 20 Software Part 2.
Unit 20 – Computer Game Platforms & Technology – Software Technology
map3d History and Concepts
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
1. Azure Data Explorer Azure Data Explorer enables rich data exploration over raw, structured, and semi-structured data delivering fast time to insight.
Games Development 2 Tools Programming
Running C# in the browser
Presentation transcript:

3D graphics in Erlang Jakob Cederlund - jakob@gnodata.se Björn Gustavsson - bjorn@erix.ericsson.se Dan Gudmundsson - dgud@erix.ericsson.se

3D graphics in erlang 3D graphics with hardware acceleration OpenGL - an open version of SGI’s GL Reasonable API Open standard Cross platform (Wintel, Linux, Sun, Mac) Widespread support from hardware SDL - a library supplementing OpenGL with interaction, 2D graphics and more

erlang and 3D graphics erlang high level language 3D graphics needs symbolic language Fast development Performance critical code mostly in 3D hardware and drivers

ESDL An erlang driver that interfaces with SDL Supports most OpenGL calls Fast Optimized C driver Uses binary syntax Available as download from contrib area Written by Dan Gudmundsson

ESDL erlang 3D program esdl-driver esdl SDL lib OpenGL 3D hardware

Wings - a 3D modeller in erlang Uses erlang as functional language Fast development Good performance Powerful Innovative user interface Inspired by Nendo Written by Björn Gustavsson Some inspiration from Jakob Cederlund

Wings Most of the erlang code not performance critical Some functions optimized Winged-edge structure for 3D objects Uses gb_trees and gb_sets (included in OTP R8)

Wings - features Powerful modelling Every operation applicable to several objects at the same time Imports and exports to different formats Wavefront 3D studio Easy to do easy things As opposed to other 3D modellers

Wings - development Functional Only one process Process dictionary used in for GUI state Some things suprisingly easy to do Multiple undo, with shared data Only updates appriopriate parts of the model Continues after crash, e.g. to save work Just a catch, saves dump to file Library functions used gb_sets and gb_trees (R8) sofs - Sets OF Sets (R8) digraph and digraph_utils

Wings - development cont. Funs used a lot special fold operations to iterate over model elements Optimization after implementation and testing Data structures hidden, used via functions Most user commands uses primitive commands Example inset Extrude Scale

Wings - examples Rendered in Bryce, composited in PhotoShop

Wings - examples cont. Modelled in only 5 minutes! Rendered afterwards in Bryce

Wings - performance Most things fast enough Optimized floating point in R8 Some things take time Smooth Dissolve Used as primitive by many commands erlang fast enough, even for interactive tasks

Wings - future Long to-do list Ongoing development, bugfixing and new features Future features Plug-ins, both in erlang and C More export formats, e.g. renderman Cameras, multiple views Materials, textures New platforms (MacOSX)

Wings - availability Open source Full source on sourceforge Compiled versions Currently requires otp, esdl and SDL Stand-alone erlang version with installer will be available shortly Documentation and examples Home page http://www.erlang.org/project/wings/