SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Building 3D apps
with Javascript
Graham Weldon

  PHP developer for 11 years

  CakePHP core contributor

  Open source public speaker

  Love developing/teaching



  @predominant

  http://grahamweldon.com

  http://cakedc.com
Tragic Gamer

  Used to work as a public
  gaming administrator

  Used to game competitively

  Still heavily into games

  Hobby in game development

  R&D, and move on

  Helps me be a more innovative
  developer for work
Side Projects
MyIsland

  Perlin noise generation

  Simplex alternatives

  Voxel terrain

  Complex mesh generation

  Mesh combination

  Performance complexities
Sphere
Tessellation
  Dynamically generate a sphere

  Custom mesh winding

  Allow various sizes

  Keep performance high

  Combine meshes
Procedural Terrain
Generation
  Earth-like planets

  Chunky but natural looking

  Randomly generated

  Shaders

  Colouring
Spaaaaaaaaaaaace

  Free form sandbox space game

  1:1 scale

  Space travel

  Intra-atmosphere travel

  Rotating planets

  Planetary gravity



Ship Model by Thomas Campbell
      http://tomc3d.com
Falling sand
simulation
  Pixels for sand

  Drag and drop producers

  Heap generation

  Particle emitters

  Frame based particles
Javascript Rendered
Lidar Data
  apps4nsw

  Kempsy data

  Raw files provided

  Progressive data loading

  Performance problems
Scary fact
Why you might want to leave
I am not a
Javascript Ninja
Exciting fact
Why you should stay
Technology
Stuff we will use today
Technology

  Javascript

  Chrome

  Three.js

      Make 3D easier

      https://github.com/mrdoob/three.js

  Node.js

      Server

      Client management

      http://nodejs.org
Math

 Yuck :-(



 Vectors

 Quaternions

 Matrices

 Trigonometry
Vector (2D)
P(x, y)

   P(12, 13)
   P(-10, 8)




Vector (2D)
Vector (3D)
P(x, y, z)

  P(12, 13, 4)
 P(-10, 8, -33)




Vector (3D)
Local Space & World Space
3D Terminology
The Concept
Lets build a game

  Game

  Multiplayer

  Responsive

  Canvas based HTML client
CODE TIME!
You can grab the code at: https://github.com/predominant/OSDC-3DJS
Frustum
Graham Weldon

  PHP developer for 11 years

  CakePHP core contributor

  Open source public speaker

  Love developing/teaching



  @predominant

  http://grahamweldon.com

  http://cakedc.com

Weitere ähnliche Inhalte

Was ist angesagt?

Amsterdam.js talk: node webkit
Amsterdam.js talk: node webkitAmsterdam.js talk: node webkit
Amsterdam.js talk: node webkit
Fabian Jakobs
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
Ryan Cuprak
 

Was ist angesagt? (20)

Buzzword, How'd They Build That?
Buzzword, How'd They Build That?Buzzword, How'd They Build That?
Buzzword, How'd They Build That?
 
Opening the mobile web mozilla and firefox os-chit thiri maung
Opening the mobile web   mozilla and firefox os-chit thiri maungOpening the mobile web   mozilla and firefox os-chit thiri maung
Opening the mobile web mozilla and firefox os-chit thiri maung
 
Amsterdam.js talk: node webkit
Amsterdam.js talk: node webkitAmsterdam.js talk: node webkit
Amsterdam.js talk: node webkit
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumDesktop Apps with PHP and Titanium
Desktop Apps with PHP and Titanium
 
Naked and afraid Offline Mobile
Naked and afraid Offline MobileNaked and afraid Offline Mobile
Naked and afraid Offline Mobile
 
Php xperts 2010-masnun
Php xperts 2010-masnunPhp xperts 2010-masnun
Php xperts 2010-masnun
 
Adobe is from Mars, Microsoft is from Uranus. A look at two competing web st...
Adobe is from Mars, Microsoft is from Uranus.  A look at two competing web st...Adobe is from Mars, Microsoft is from Uranus.  A look at two competing web st...
Adobe is from Mars, Microsoft is from Uranus. A look at two competing web st...
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Whats next in templating
Whats next in templatingWhats next in templating
Whats next in templating
 
Git and Github - a 90 Minute interactive workshop
Git and Github - a 90 Minute interactive workshopGit and Github - a 90 Minute interactive workshop
Git and Github - a 90 Minute interactive workshop
 
Lessons Learned with Unity and WebGL
Lessons Learned with Unity and WebGLLessons Learned with Unity and WebGL
Lessons Learned with Unity and WebGL
 
Merged Automation Talk - Pete Carapetyan - Feb 2016
Merged Automation Talk - Pete Carapetyan - Feb 2016 Merged Automation Talk - Pete Carapetyan - Feb 2016
Merged Automation Talk - Pete Carapetyan - Feb 2016
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
 
Cross-Platform Desktop Apps with Electron (Condensed Version)
Cross-Platform Desktop Apps with Electron (Condensed Version)Cross-Platform Desktop Apps with Electron (Condensed Version)
Cross-Platform Desktop Apps with Electron (Condensed Version)
 
Whats next in templating
Whats next in templatingWhats next in templating
Whats next in templating
 
10 Golden Rules For Outstanding Titanium Apps
 10 Golden Rules For Outstanding Titanium Apps 10 Golden Rules For Outstanding Titanium Apps
10 Golden Rules For Outstanding Titanium Apps
 
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
 
Features, Exportables & You
Features, Exportables & YouFeatures, Exportables & You
Features, Exportables & You
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
By VISY - ""In the country of the blind, the one-eyed man is king""
By VISY - ""In the country of the blind, the one-eyed man is king""By VISY - ""In the country of the blind, the one-eyed man is king""
By VISY - ""In the country of the blind, the one-eyed man is king""
 

Andere mochten auch

SydPHP May 2012 - Deployment
SydPHP May 2012 - DeploymentSydPHP May 2012 - Deployment
SydPHP May 2012 - Deployment
Graham Weldon
 
3d cubes building blocks stacked building blocks logical design 1 powerpoint ...
3d cubes building blocks stacked building blocks logical design 1 powerpoint ...3d cubes building blocks stacked building blocks logical design 1 powerpoint ...
3d cubes building blocks stacked building blocks logical design 1 powerpoint ...
SlideTeam.net
 
10.01.03.116 (Presentation on centroid)
10.01.03.116 (Presentation on centroid)10.01.03.116 (Presentation on centroid)
10.01.03.116 (Presentation on centroid)
Preoti1234
 
Chapter 7.2 parabola
Chapter 7.2 parabolaChapter 7.2 parabola
Chapter 7.2 parabola
soma1996
 
3ds max basic assigment
3ds max basic assigment3ds max basic assigment
3ds max basic assigment
dezyneecole
 

Andere mochten auch (20)

Re-imagining CakePHP (OSDC 2010)
Re-imagining CakePHP (OSDC 2010)Re-imagining CakePHP (OSDC 2010)
Re-imagining CakePHP (OSDC 2010)
 
SydPHP April 2012
SydPHP April 2012SydPHP April 2012
SydPHP April 2012
 
SydPHP May 2012 - Deployment
SydPHP May 2012 - DeploymentSydPHP May 2012 - Deployment
SydPHP May 2012 - Deployment
 
CakePHP and Open Source - Newcastle University
CakePHP and Open Source - Newcastle UniversityCakePHP and Open Source - Newcastle University
CakePHP and Open Source - Newcastle University
 
The business behind open source
The business behind open sourceThe business behind open source
The business behind open source
 
SydPHP March 2012 Meetup
SydPHP March 2012 MeetupSydPHP March 2012 Meetup
SydPHP March 2012 Meetup
 
PHP 5.4 - Begin your love affair with traits
PHP 5.4 - Begin your love affair with traitsPHP 5.4 - Begin your love affair with traits
PHP 5.4 - Begin your love affair with traits
 
One-block 3D Toy Building System
One-block 3D Toy Building SystemOne-block 3D Toy Building System
One-block 3D Toy Building System
 
3d cubes building blocks stacked building blocks logical design 1 powerpoint ...
3d cubes building blocks stacked building blocks logical design 1 powerpoint ...3d cubes building blocks stacked building blocks logical design 1 powerpoint ...
3d cubes building blocks stacked building blocks logical design 1 powerpoint ...
 
Building Structure // Column Analysis Report
Building Structure // Column Analysis ReportBuilding Structure // Column Analysis Report
Building Structure // Column Analysis Report
 
3D APPS Exchange
3D APPS Exchange3D APPS Exchange
3D APPS Exchange
 
3D GIS - Using ESRI 3D Analyst & ESRI ArcScene for Visualization
3D GIS - Using ESRI 3D Analyst & ESRI ArcScene for Visualization3D GIS - Using ESRI 3D Analyst & ESRI ArcScene for Visualization
3D GIS - Using ESRI 3D Analyst & ESRI ArcScene for Visualization
 
Sachpazis_Circular Section Column Design & Analysis, Calculations according t...
Sachpazis_Circular Section Column Design & Analysis, Calculations according t...Sachpazis_Circular Section Column Design & Analysis, Calculations according t...
Sachpazis_Circular Section Column Design & Analysis, Calculations according t...
 
10.01.03.116 (Presentation on centroid)
10.01.03.116 (Presentation on centroid)10.01.03.116 (Presentation on centroid)
10.01.03.116 (Presentation on centroid)
 
Chapter 7.2 parabola
Chapter 7.2 parabolaChapter 7.2 parabola
Chapter 7.2 parabola
 
Beam and Column Analysis | Individual Component
Beam and Column Analysis | Individual ComponentBeam and Column Analysis | Individual Component
Beam and Column Analysis | Individual Component
 
3ds max basic assigment
3ds max basic assigment3ds max basic assigment
3ds max basic assigment
 
Use of STAAD-PRO v8i and sketchup 2014
Use of STAAD-PRO v8i and sketchup 2014Use of STAAD-PRO v8i and sketchup 2014
Use of STAAD-PRO v8i and sketchup 2014
 
Lesson 12 centroid of an area
Lesson 12 centroid of an areaLesson 12 centroid of an area
Lesson 12 centroid of an area
 
water tank analysis
water tank analysiswater tank analysis
water tank analysis
 

Ähnlich wie Building 3D apps with Javascript

There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
jbandi
 
Games Technologies
Games TechnologiesGames Technologies
Games Technologies
Oded Sharon
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Johan Andersson
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
Yukio Andoh
 
Seattle javascript game development - Overview
Seattle javascript game development - OverviewSeattle javascript game development - Overview
Seattle javascript game development - Overview
Grant Goodale
 
Facebook flash api and social game development
Facebook flash api and social game developmentFacebook flash api and social game development
Facebook flash api and social game development
Yenwen Feng
 
HTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JSHTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JS
we20
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
David Galeano
 

Ähnlich wie Building 3D apps with Javascript (20)

There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
 
Introduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JSIntroduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JS
 
Games Technologies
Games TechnologiesGames Technologies
Games Technologies
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
 
Seattle javascript game development - Overview
Seattle javascript game development - OverviewSeattle javascript game development - Overview
Seattle javascript game development - Overview
 
Running HTML5 Mobile Web Games at 60fps
Running HTML5 Mobile Web Games at 60fpsRunning HTML5 Mobile Web Games at 60fps
Running HTML5 Mobile Web Games at 60fps
 
Facebook flash api and social game development
Facebook flash api and social game developmentFacebook flash api and social game development
Facebook flash api and social game development
 
Full stack development in Go
Full stack development in GoFull stack development in Go
Full stack development in Go
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQuery
 
Landscape Of Virtual World Systems
Landscape Of Virtual World SystemsLandscape Of Virtual World Systems
Landscape Of Virtual World Systems
 
Cross Platform Game Programming with Cocos2d-js
Cross Platform Game Programming with Cocos2d-jsCross Platform Game Programming with Cocos2d-js
Cross Platform Game Programming with Cocos2d-js
 
WebGL For Game Development 2012
WebGL For Game Development 2012WebGL For Game Development 2012
WebGL For Game Development 2012
 
The Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game DevelopmentThe Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game Development
 
Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010
 
HTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JSHTML5 GAME USING IMPACT JS
HTML5 GAME USING IMPACT JS
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
 

Mehr von Graham Weldon

20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available php
Graham Weldon
 

Mehr von Graham Weldon (9)

HackLang Introduction
HackLang IntroductionHackLang Introduction
HackLang Introduction
 
20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available php
 
SydPHP June 2012 - GovHack overview
SydPHP June 2012 - GovHack overviewSydPHP June 2012 - GovHack overview
SydPHP June 2012 - GovHack overview
 
MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011
 
Nginx in production
Nginx in productionNginx in production
Nginx in production
 
CakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your worldCakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your world
 
CakePHP Tutorial - OSDC 2010
CakePHP Tutorial - OSDC 2010CakePHP Tutorial - OSDC 2010
CakePHP Tutorial - OSDC 2010
 
Debugging and Profiling PHP
Debugging and Profiling PHPDebugging and Profiling PHP
Debugging and Profiling PHP
 
OSDC LIghtning Talk - Context Free Art
OSDC LIghtning Talk - Context Free ArtOSDC LIghtning Talk - Context Free Art
OSDC LIghtning Talk - Context Free Art
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Building 3D apps with Javascript

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n