SlideShare a Scribd company logo
1 of 37
rest3d
SigGraph 2013
remi.arnaud@amd.com
remi@acm.org
Recap 2011
• 2011 – forming the idea and brainstorming
– GDC: small group discussed the idea for a rest based API
to simplify usage of 3D content in the web
– http://www.slideshare.net/remi_arnaud/6-10presentation
– http://www.slideshare.net/remi_arnaud/collada-webgl
– SigGraph BOF gathering
• Resources:
– http://rest3d.org
– Mailing list: (join
us!)https://groups.google.com/forum/#!forum/3d-rest
Recap 2012
• 2012 – prototyping rest3d, COLLADA2json
– http://www.slideshare.net/remi_arnaud/rest-3-
dupdatewebglmeetup11072012
– http://www.scribd.com/doc/102183295/Siggraph
2012-Pamphlet
– http://www.youtube.com/watch?v=Dja5achkgZc
– SigGraph BOF
• Use case discussion
• Group said – lets focus on WebGL viewer APP
Status for SigGraph 2013 BOF
• COLLADA2JSON became Khronos glTF
– http://gltf.gl/
– https://github.com/KhronosGroup/glTF
– Fabrice Robinet, Patrick Cozzi, Tony Parisi, Rémi
Arnaud
• rest3d prototype recently open-sourced
– https://github.com/amd/rest3d
– Rémi Arnaud, Khaled Mamou
Where in the world is rest3d
Content creation
3Dapp3D model
Images
Animations
Physics
Audio
Script
…
Content ‘Pipeline’
Packaging
Optimization
Physics
Textures, Shaders
Animations
Modeler
Object files
Animation files
+ skins/bones
Shader files
+ psd
Physics files
Binary files
package file
Multiple indexes, Quads
Clips, bézier, complex
Transformation graph
Vertex / Fragment shaders
Convex Mesh,
colliders
Single index, triangles
DXTs, simplified scene
Compressed folder
3D loader?
Packaging
Optimization A
Physics A
Textures, Shaders A
Animations A
Modeler A
My game
Polygons
multiple indexes
image format
mesh optimization, split
complex transform hierarchy
no shader programs
no collision volumes
verbose text (xml) parsing
COLLADA Refinery (2007)
https://collada.org/mediawiki/index.php/COL
LADA_Refinery
COLLADA Refinery 2.0.3
conditioners
Axisconverter
Compress Transforms
Stripper
Image conversion
Axis transform
Coherencytest ** Use this !!
Copyrighter
De-indexer
Triangulate
Vertex cache optimization
Optimizer
Packager
Integrated pipeline – Unity Editor
Packaging
IOS, Android, PC, Web (plugin), Flash
Optimization
Built-in
Physics
PhysX
Textures, Shaders
Shader Factory
Animations
Mecanim
Modeler
Max Maya Blender Modo Cinema4D XSI
Fbx or simple COLLADA (e.g.
no physics, morphing,
shaders..)
Unity Engine
C
o
n
t
e
n
t
p
i
p
e
l
i
n
e
cloud (rest3d) pipelineModeler
Max
Maya
Blender
Databank
Editor
Desktop
Or web app
Assets
Database
Queries
Upload/download
Processing
Conversion (glTF)
Compression
Image conversion
WebApp
Turbulenz
Three.js
Cesium
…WebGL…
Desktop
Browser
Cloud
REST3D
REST3D
REST3D
Use case: viewer
• Assets are stored in the cloud
• App query / search for assets
• App ask for ‘compiled’ assets for specific target
• Need geometry, Shaders, textures, animations,
lights, cameras…
• Compress data for bandwidth use and potentially
HW decode
• Cache!! – client and server cache are very
important
glTF as a command line tool
Modeler
Max
Maya
Blender
…
Exporter
COLLADA
converter
COLLADA2GLTF
WebGL
Turbulenz
Three.js
...
Converter flags (or profile) to control
conversion for specific target
(e.g. shader generation, animation, transparency control, image format)
Three main components
XML
Database
• BaseX server
• (sockets or http interface)
• Xquery
http
server
• Node.js + rest modules
• Javascript
Html
client
• Html/Javascript
• WebGL viewer
• UI framework
Hacking it together
Local Scene
• Single asset only
– Viewer simple API only allows for 1 model view
– click on model in scene send load even in
viewer
– Viewer loads json scene description…
[GET] /rest3d/assets/Dog/models/model.json
– .. then pages [partial http requests] data
• Issues
– Partial content non cacheable by database
– Node.js server caching implemented – not
ideal
– Client side does not cache 206
Database assets browser
• Browse asset database
– Tree UI
– Hierarchical JSON from XML query
– Typed assets [model, image, other]
– Converted assets [collada2json, glsl
shaders]
– Should implement lazy tree
evaluation
– Show asset info in right viewport,
direct URL access
[GET] /rest3d/assets
• Drag/drop into scene
– Local operation ..
• Considering shared scene through
websockets
Sketchup warehouse proxy
• Browse
– Dynamic tree MV UI
– Node.js html scraping with cheerio and
request
– Warehouse collection browsing issue: leads
to unavailable content (protected or not
converted)
– QooxDoo complex view system and dynamic
update issues
[GET] /rest3d/warehouse/
• Search
– Simple text box UI – [enter] / search button
linked
– Warehouse search can filter specific
available format
– Search return is a list, not a tree…
[GET] /rest3d/warehouse/search/search_string
Sketchup warehouse proxy
• Fetch & Convert (most complex API so
far)
– Drag/drop UI (from warehouse tree to
asset tree)
– http get zip file to rest3d server
– Node.js multi-file zip archive to file
system decompress
– Datase file upload / store
– asset.xml management through xquery
– COLLADA2json server side conversion
• Could not get nodejs module to work in
Ubuntu cloud
• Need to spawn async process !
[PUT] /rest3d/assets/dog
[body]http://sketchup.google.com/3dwarehouse/download?mid:20093
34a95ee8f4c4038ed23c800b042
Rewrite – and open source
• ~4000 lines of new JavaScript code
brand new AMD client code
– glTF loader
– COLLADA loader
– WebGL rendering
– Simpler UI framework (based on jquery, jquery-UI, jquery-
layout)
• ~450,000 lines removed ! (qooxdoo, Khronos glTF
viewer sample)
https://github.com/amd/rest3d
samples
http://rest3d-remi.rhcloud.com/index.html
Tested in Chrome, Firefox, Safari
 (new) free and paying service from RedHat
– 3 small ‘gears’ for free
– Could not fit database and node server in a small gear
– Deploy directly from github
• Provided the github project contains the .openshift configuration files
– Scalability
• ‘cartridge’ can spread over multiple ‘gears’
Online converter
http://rest3d-remi.rhcloud.com/upload/index.html
Open 3D Graphics Compression
(Open3DGC)
• Efficient cross platform implementation of patent free MPEG
graphics compression tools
– 3D Meshes with multiple attributes per vertex
• Positions, normals and texture coordinates
• Float attributes (e.g., skinning animation weights)
• Integer attributes (e.g., bone ID, material ID)
– Bone based animations (coming soon)
• Time varying transforms (e.g., rotation, scale, translation)
• C/C++ Implementation under MIT License
https://github.com/amd/rest3d/tree/master/server/o3dgc
Open3DGC Mesh Compression
• Triangle Fan-based Compression [Mammou’09]
[Mammou’09] K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm”
Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
Open3DGC Mesh Compression
• Compression Efficiency
 160 models from different sources (e.g., CAD, 3D scans, modeling tools)
 Various topologies (i.e., open/closed, manifold/non-manifold, arbitrary genus)
 WebGL-Loader and Open3DGC: 14 bits for positions et 10 bits for normals/texture coord.
 OpenCTM: default parameters (not fair)
Open3DGC is 7.3 times more efficient than Gzip and
1.6-1.8 times more efficient than WebGL Loader and OpenCTM
Open3DGC Mesh Compression
• Speed
 Non-optimized C++ implementation, single thread (rooms for parallelization)
 Intel i7-2600 CPU @ 3.4 GHz, Win7 x64, RAM 10 GB
Open3DGC Mesh Decompression
• Decoder
Demo & deep dive
• Running rest3d local
– Debugging
• Running on server
• Database vs. node.js vs. cache
– Socket vs. http
• API details
Let’s talk
• Roadmap ?
– More work on the viewer / UI
– More work on the server
– Where is the spec ?
• Contribute ?
– Join the email list
https://groups.google.com/forum/#!forum/3d-rest
• See also:
– COLLADA/glTF BOF !
Thank you !!

More Related Content

Similar to Rest3d BOF presentation at SigGraph 2013

Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...
Ari Jolma
 
NIIF Grid Development portfolio
NIIF Grid Development portfolioNIIF Grid Development portfolio
NIIF Grid Development portfolio
Ferenc Szalai
 

Similar to Rest3d BOF presentation at SigGraph 2013 (20)

Art and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachArt and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end Approach
 
Javascript Update May 2013
Javascript Update May 2013Javascript Update May 2013
Javascript Update May 2013
 
Thrombus Training Dec. 2013
Thrombus Training Dec. 2013Thrombus Training Dec. 2013
Thrombus Training Dec. 2013
 
X3DOM - An Overview and Examples
X3DOM - An Overview and ExamplesX3DOM - An Overview and Examples
X3DOM - An Overview and Examples
 
Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...
Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...
Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...
 
Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Collada Overview GDC 2009
Collada Overview GDC 2009Collada Overview GDC 2009
Collada Overview GDC 2009
 
Serverless Go at BuzzBird
Serverless Go at BuzzBirdServerless Go at BuzzBird
Serverless Go at BuzzBird
 
Initiation & hands-on Moovweb 5's new feature
Initiation & hands-on Moovweb 5's new featureInitiation & hands-on Moovweb 5's new feature
Initiation & hands-on Moovweb 5's new feature
 
C# Advanced L09-HTML5+ASP
C# Advanced L09-HTML5+ASPC# Advanced L09-HTML5+ASP
C# Advanced L09-HTML5+ASP
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
How NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscapeHow NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscape
 
mago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open sourcemago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open source
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the Cloud
 
Scalding big ADta
Scalding big ADtaScalding big ADta
Scalding big ADta
 
NIIF Grid Development portfolio
NIIF Grid Development portfolioNIIF Grid Development portfolio
NIIF Grid Development portfolio
 

More from Remi Arnaud (7)

rest3d Web3D 2014
rest3d Web3D 2014rest3d Web3D 2014
rest3d Web3D 2014
 
COLLADA to WebGL (GDC 2013 presentation)
COLLADA to WebGL (GDC 2013 presentation)COLLADA to WebGL (GDC 2013 presentation)
COLLADA to WebGL (GDC 2013 presentation)
 
rest3d - webGL meetup - SF 11/07/2012
rest3d - webGL meetup - SF 11/07/2012rest3d - webGL meetup - SF 11/07/2012
rest3d - webGL meetup - SF 11/07/2012
 
Collada exporter for unity
Collada exporter for unityCollada exporter for unity
Collada exporter for unity
 
COLLADA & WebGL
COLLADA & WebGLCOLLADA & WebGL
COLLADA & WebGL
 
6 10-presentation
6 10-presentation6 10-presentation
6 10-presentation
 
Keynote Net Games 09 - Rémi Arnaud
Keynote Net Games 09 - Rémi ArnaudKeynote Net Games 09 - Rémi Arnaud
Keynote Net Games 09 - Rémi Arnaud
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
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...
 
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, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Rest3d BOF presentation at SigGraph 2013

  • 2. Recap 2011 • 2011 – forming the idea and brainstorming – GDC: small group discussed the idea for a rest based API to simplify usage of 3D content in the web – http://www.slideshare.net/remi_arnaud/6-10presentation – http://www.slideshare.net/remi_arnaud/collada-webgl – SigGraph BOF gathering • Resources: – http://rest3d.org – Mailing list: (join us!)https://groups.google.com/forum/#!forum/3d-rest
  • 3. Recap 2012 • 2012 – prototyping rest3d, COLLADA2json – http://www.slideshare.net/remi_arnaud/rest-3- dupdatewebglmeetup11072012 – http://www.scribd.com/doc/102183295/Siggraph 2012-Pamphlet – http://www.youtube.com/watch?v=Dja5achkgZc – SigGraph BOF • Use case discussion • Group said – lets focus on WebGL viewer APP
  • 4. Status for SigGraph 2013 BOF • COLLADA2JSON became Khronos glTF – http://gltf.gl/ – https://github.com/KhronosGroup/glTF – Fabrice Robinet, Patrick Cozzi, Tony Parisi, Rémi Arnaud • rest3d prototype recently open-sourced – https://github.com/amd/rest3d – Rémi Arnaud, Khaled Mamou
  • 5. Where in the world is rest3d
  • 7. Content ‘Pipeline’ Packaging Optimization Physics Textures, Shaders Animations Modeler Object files Animation files + skins/bones Shader files + psd Physics files Binary files package file Multiple indexes, Quads Clips, bézier, complex Transformation graph Vertex / Fragment shaders Convex Mesh, colliders Single index, triangles DXTs, simplified scene Compressed folder
  • 8. 3D loader? Packaging Optimization A Physics A Textures, Shaders A Animations A Modeler A My game Polygons multiple indexes image format mesh optimization, split complex transform hierarchy no shader programs no collision volumes verbose text (xml) parsing
  • 9. COLLADA Refinery (2007) https://collada.org/mediawiki/index.php/COL LADA_Refinery COLLADA Refinery 2.0.3 conditioners Axisconverter Compress Transforms Stripper Image conversion Axis transform Coherencytest ** Use this !! Copyrighter De-indexer Triangulate Vertex cache optimization Optimizer Packager
  • 10. Integrated pipeline – Unity Editor Packaging IOS, Android, PC, Web (plugin), Flash Optimization Built-in Physics PhysX Textures, Shaders Shader Factory Animations Mecanim Modeler Max Maya Blender Modo Cinema4D XSI Fbx or simple COLLADA (e.g. no physics, morphing, shaders..) Unity Engine C o n t e n t p i p e l i n e
  • 11. cloud (rest3d) pipelineModeler Max Maya Blender Databank Editor Desktop Or web app Assets Database Queries Upload/download Processing Conversion (glTF) Compression Image conversion WebApp Turbulenz Three.js Cesium …WebGL… Desktop Browser Cloud REST3D REST3D REST3D
  • 12. Use case: viewer • Assets are stored in the cloud • App query / search for assets • App ask for ‘compiled’ assets for specific target • Need geometry, Shaders, textures, animations, lights, cameras… • Compress data for bandwidth use and potentially HW decode • Cache!! – client and server cache are very important
  • 13.
  • 14. glTF as a command line tool Modeler Max Maya Blender … Exporter COLLADA converter COLLADA2GLTF WebGL Turbulenz Three.js ... Converter flags (or profile) to control conversion for specific target (e.g. shader generation, animation, transparency control, image format)
  • 15.
  • 16. Three main components XML Database • BaseX server • (sockets or http interface) • Xquery http server • Node.js + rest modules • Javascript Html client • Html/Javascript • WebGL viewer • UI framework
  • 18. Local Scene • Single asset only – Viewer simple API only allows for 1 model view – click on model in scene send load even in viewer – Viewer loads json scene description… [GET] /rest3d/assets/Dog/models/model.json – .. then pages [partial http requests] data • Issues – Partial content non cacheable by database – Node.js server caching implemented – not ideal – Client side does not cache 206
  • 19. Database assets browser • Browse asset database – Tree UI – Hierarchical JSON from XML query – Typed assets [model, image, other] – Converted assets [collada2json, glsl shaders] – Should implement lazy tree evaluation – Show asset info in right viewport, direct URL access [GET] /rest3d/assets • Drag/drop into scene – Local operation .. • Considering shared scene through websockets
  • 20.
  • 21.
  • 22. Sketchup warehouse proxy • Browse – Dynamic tree MV UI – Node.js html scraping with cheerio and request – Warehouse collection browsing issue: leads to unavailable content (protected or not converted) – QooxDoo complex view system and dynamic update issues [GET] /rest3d/warehouse/ • Search – Simple text box UI – [enter] / search button linked – Warehouse search can filter specific available format – Search return is a list, not a tree… [GET] /rest3d/warehouse/search/search_string
  • 23. Sketchup warehouse proxy • Fetch & Convert (most complex API so far) – Drag/drop UI (from warehouse tree to asset tree) – http get zip file to rest3d server – Node.js multi-file zip archive to file system decompress – Datase file upload / store – asset.xml management through xquery – COLLADA2json server side conversion • Could not get nodejs module to work in Ubuntu cloud • Need to spawn async process ! [PUT] /rest3d/assets/dog [body]http://sketchup.google.com/3dwarehouse/download?mid:20093 34a95ee8f4c4038ed23c800b042
  • 24. Rewrite – and open source • ~4000 lines of new JavaScript code brand new AMD client code – glTF loader – COLLADA loader – WebGL rendering – Simpler UI framework (based on jquery, jquery-UI, jquery- layout) • ~450,000 lines removed ! (qooxdoo, Khronos glTF viewer sample) https://github.com/amd/rest3d
  • 25.
  • 26.
  • 28.  (new) free and paying service from RedHat – 3 small ‘gears’ for free – Could not fit database and node server in a small gear – Deploy directly from github • Provided the github project contains the .openshift configuration files – Scalability • ‘cartridge’ can spread over multiple ‘gears’
  • 30. Open 3D Graphics Compression (Open3DGC) • Efficient cross platform implementation of patent free MPEG graphics compression tools – 3D Meshes with multiple attributes per vertex • Positions, normals and texture coordinates • Float attributes (e.g., skinning animation weights) • Integer attributes (e.g., bone ID, material ID) – Bone based animations (coming soon) • Time varying transforms (e.g., rotation, scale, translation) • C/C++ Implementation under MIT License https://github.com/amd/rest3d/tree/master/server/o3dgc
  • 31. Open3DGC Mesh Compression • Triangle Fan-based Compression [Mammou’09] [Mammou’09] K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm” Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
  • 32. Open3DGC Mesh Compression • Compression Efficiency  160 models from different sources (e.g., CAD, 3D scans, modeling tools)  Various topologies (i.e., open/closed, manifold/non-manifold, arbitrary genus)  WebGL-Loader and Open3DGC: 14 bits for positions et 10 bits for normals/texture coord.  OpenCTM: default parameters (not fair) Open3DGC is 7.3 times more efficient than Gzip and 1.6-1.8 times more efficient than WebGL Loader and OpenCTM
  • 33. Open3DGC Mesh Compression • Speed  Non-optimized C++ implementation, single thread (rooms for parallelization)  Intel i7-2600 CPU @ 3.4 GHz, Win7 x64, RAM 10 GB
  • 35. Demo & deep dive • Running rest3d local – Debugging • Running on server • Database vs. node.js vs. cache – Socket vs. http • API details
  • 36. Let’s talk • Roadmap ? – More work on the viewer / UI – More work on the server – Where is the spec ? • Contribute ? – Join the email list https://groups.google.com/forum/#!forum/3d-rest • See also: – COLLADA/glTF BOF !

Editor's Notes

  1. All this content need to get in the game, somehow
  2. Typical content toolchain – it is a pipeline. Each stage has its own tools its own format.
  3. It’s really hard….
  4. 6 years later, we are still doing the same things