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

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 ApproachJiang Zhu
 
Javascript Update May 2013
Javascript Update May 2013Javascript Update May 2013
Javascript Update May 2013Ramesh Nair
 
Thrombus Training Dec. 2013
Thrombus Training Dec. 2013Thrombus Training Dec. 2013
Thrombus Training Dec. 2013CREATIS
 
X3DOM - An Overview and Examples
X3DOM - An Overview and ExamplesX3DOM - An Overview and Examples
X3DOM - An Overview and Examplesjsalonen Salonen
 
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...Skilld
 
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
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleDmytro Semenov
 
Collada Overview GDC 2009
Collada Overview GDC 2009Collada Overview GDC 2009
Collada Overview GDC 2009bpatatas
 
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 featureBeMyApp
 
C# Advanced L09-HTML5+ASP
C# Advanced L09-HTML5+ASPC# Advanced L09-HTML5+ASP
C# Advanced L09-HTML5+ASPMohammad Shaker
 
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 landscapeRadosław Scheibinger
 
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 sourceSANGHEE SHIN
 
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...DataWorks Summit/Hadoop Summit
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web ApplicationYakov Fain
 
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 CloudGábor Szárnyas
 
Scalding big ADta
Scalding big ADtaScalding big ADta
Scalding big ADtab0ris_1
 
NIIF Grid Development portfolio
NIIF Grid Development portfolioNIIF Grid Development portfolio
NIIF Grid Development portfolioFerenc 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

rest3d Web3D 2014
rest3d Web3D 2014rest3d Web3D 2014
rest3d Web3D 2014Remi Arnaud
 
COLLADA to WebGL (GDC 2013 presentation)
COLLADA to WebGL (GDC 2013 presentation)COLLADA to WebGL (GDC 2013 presentation)
COLLADA to WebGL (GDC 2013 presentation)Remi Arnaud
 
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/2012Remi Arnaud
 
Collada exporter for unity
Collada exporter for unityCollada exporter for unity
Collada exporter for unityRemi Arnaud
 
6 10-presentation
6 10-presentation6 10-presentation
6 10-presentationRemi Arnaud
 
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 ArnaudRemi Arnaud
 

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

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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 WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

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