I3S – an open standard to bring 3D to Web, Desktop and Mobile platforms
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/43523 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
FOSS4G Bucharest 201961 / 295
15
20
28
32
37
38
39
40
41
42
43
44
46
48
52
54
57
69
72
75
83
85
87
88
101
103
105
106
108
111
114
119
122
123
126
129
130
131
132
137
139
140
141
142
143
144
147
148
149
155
157
159
163
166
170
171
179
189
191
192
193
194
195
196
197
202
207
212
213
214
215
216
231
235
251
252
263
287
00:00
Standard deviationStandard deviationMobile appTraverse (surveying)Slide ruleBuildingRevision controlSubject indexingWordRight angleProcess (computing)SphereLink (knot theory)Complex (psychology)Client (computing)MereologyMassContent (media)Form (programming)LaptopImage resolutionBitCompact spaceTouchscreenElectronic visual displayLatent heatOcean currentPatch (Unix)Level (video gaming)VolumenvisualisierungCASE <Informatik>Pattern languageMathematicsSelf-organizationProfil (magazine)UsabilityMultiplicationPoint (geometry)HierarchyoutputApproximationDemosceneType theoryPhysical systemObject (grammar)Shape (magazine)Volume (thermodynamics)Different (Kate Ryan album)CuboidInternet service providerPolygon meshData structureAreaFile formatImplementationAddress spaceMaxima and minimaPoint cloudNetwork topologyEntire functionSparse matrixNumbering schemeCapability Maturity ModelMultiplication signMathematical optimizationCartesian coordinate systemMetreSet (mathematics)Source codeIterationOpen setDemo (music)Mobile WebStreaming mediaTexture mappingData typeCoordinate systemCellular automatonCentralizer and normalizerCommunications protocolBinary codeWeb 2.0Selectivity (electronic)InformationMetadataWhiteboardInheritance (object-oriented programming)Staff (military)Logic gateTouch typingObservational studyStorage area networkMeasurementWave packetElectronic mailing list40 (number)Condition numberCartesian productMarginal distributionMachine visionPhysical lawVisual systemScaling (geometry)WebsiteVotingGame controllerField (computer science)Lecture/Conference
09:57
InformationLevel (video gaming)GeometryPhysical systemContent (media)Traverse (surveying)Channel capacityInheritance (object-oriented programming)Motion captureTexture mappingPoint (geometry)Object (grammar)Polygon meshAttribute grammarTriangleDemosceneMathematical optimizationAreaTable (information)BuildingNormal (geometry)Scaling (geometry)Self-organizationImplementationData compressionLatent heatSubject indexingSlide ruleVertex (graph theory)Type theoryFile formatProcess (computing)Social classINTEGRALQuicksortMeasurementAnalytic continuationDiameterPixelThresholding (image processing)Point cloudImage resolutionTouchscreenMultiplicationDialectMaxima and minimaRepresentation (politics)Context awarenessSelectivity (electronic)Source codeMultiplication signState of matterLink (knot theory)Different (Kate Ryan album)Associative propertyRange (statistics)WordWeb pageDemo (music)PhysicalismRevision controlWeb browserData structureBitSoftwareMassVisualization (computer graphics)AdditionElectronic visual displayWeb 2.0Buffer solutionArchaeological field survey2 (number)Computer fileService (economics)Usability1 (number)Program slicingPlanningProfil (magazine)Pattern languageSingle-precision floating-point formatCASE <Informatik>Binary codeMereologyNetwork topologyForcing (mathematics)SpacetimeWeightStorage area networkFinitismusBit rateComplete metric spaceMachine visionRight anglePairwise comparisonProjective planeLogic gateWebsiteCondition numberWorkstation <Musikinstrument>Lecture/Conference
19:47
Right angleBitSource codePresentation of a groupWeb browserMultiplication signMachine codeLecture/Conference
20:22
Computer iconFile formatRepresentation (politics)Cartesian coordinate systemServer (computing)MultiplicationMathematical analysisInternet service providerSubject indexingCASE <Informatik>Address spacePolygon meshSource codeKey (cryptography)outputLatent heatMotion captureDemosceneResultantStreaming mediaMassStandard deviationLevel (video gaming)Near-ringContent (media)AreaSingle-precision floating-point formatWeb 2.0ImplementationTesselationProduct (business)Slide ruleQuicksort1 (number)BuildingVisualization (computer graphics)Right angleSoftwareOperator (mathematics)Social classData storage deviceTable (information)Process (computing)Front and back endsAnalytic setBit rateMultiplication signService (economics)Water vaporWebsiteSimilarity (geometry)AnalogyObservational studyGreatest elementStructural loadPrisoner's dilemmaForcing (mathematics)State of matterMetropolitan area networkLecture/Conference
26:01
Lecture/Conference
Transcript: English(auto-generated)
00:07
An open standard to bring 3d to web desktop and mobile applications. So here you go. Thank you very much Thanks, so I did a show of hands and I see that not a whole lot of people know about I3s
00:22
So I guess let's get started. What is I3s? Index 3d scene layers is a standard is an OTC standard that allows you to stream large amounts of 3d geospatial data The web desktop and mobile systems I3s was designed from the get-go to be cloud web and mobile friendly
00:43
It's based on JSON rest and binary protocols Optimization as well as Readability are not sacrificed Yes, you know for net systems are very key for geospatial systems and I3s supports both Cartesian and all those coordinate systems as well as vertical coordinate systems and
01:05
You might have seen some data set that have been offset by you know, 30 meters especially in Europe or so because Some applications don't consider vertical coordinate system so I3s also from the get-go considered both horizontal as well as vertical coordinate system and specified it in the
01:23
standard what supports for For ease of use the standard is expandable to accommodate different data types and access patterns and I3s was released by Esri in
01:40
2015 we released it as an open GitHub community Specification it was released under Apache 2.0 license then OGC in the fall of 2017. We started the process earlier than that, but Started adapting it as an OGC standard and it became actually an OGC community standard in the fall of 2017
02:03
It's a mature standard As I said the more evolving You know More fastly changing version is available at the GitHub community version. Whereas the more mature Community standard maintained by OGC is available at the OGC side
02:24
Currently the OGC version is at 1.0 Whereas the I3s 1.0 corresponding to the 1.6 version of the I3s in the community And the get up community has already evolved. So OGC has this nice process for community standards where
02:41
only a mature and widely adapted Standard would be adopted So if we add a new layer type or if somebody proposed in the community for adding a new layer type It has to be implemented in the community and there has to be evidence of implementation Before it could become a standard and we'll see a few examples of those
03:01
So we already talked about this mature at OGC the link up up there I trace version you can grab it and then Evolving and more evolving more up-to-date version. Is that the GitHub community version maintained primarily by Esri? so Just to lay it out here anyone can use it I trace for free
03:23
It's a patch at the point. No, you can read and write I3s content as well as display and you can also propose change send new Patterns of usage can also be proposed to the standard Now let's talk a little bit about the technology sorry the graphics might not be the best but it's better on the laptop
03:44
I trace really the central topic or central Premise of I trace is this organization of geospatial data using a hierarchical bounding volume hierarchy Knows with the node based a spatial structure. So what that means is as Consuming client application there will be this metadata information the nodes that you would be able to access first and then based on the
04:07
Level of detail that you are rendering you'd be able to select content and prioritize content and be able to display it on your screen Very efficiently without really needing to traverse the whole content
04:20
So the whole idea is centered around this bounding volume hierarchy multi-level of detail organization of data input data that it could be fed to cooker or a data data organizer Now I trace defines All right, so again apologies for the graphics on the display
04:49
But the concept here is that I trace is agnostic to the data partitioning scheme used you can use kd3 sparse of trees watery whatever you might want as long as it's reflected in the
05:00
node index structure Then the consuming client does not need to know the complexity of how that data was built And this is key and central to you know This massive mesh data streaming techniques that the client just obeys and traverse this You know node index document and a certain level that you want to render different level of detail
05:20
You would just check that node index document to say is it good enough to render? For the screen resolution that I have right now if yes, you just display or request content for that level of detail if not, you descend down to three so very much easily repeatable pattern and usage Format that makes it very scalable in that you can have you know
05:42
hundreds of thousands of buildings millions of buildings really and very large meshes that cover, you know, the ours Typically, I trace has in the get-go from the the original version of I trace introduced minimum bounding spheres for bounding volume criteria, but then the second iteration or when we updated we added
06:03
OBV's oriented bounding box for better shape So the graphics that you see here is you know with OBV's you have more tighter control of what you're requesting and culling Whereas those MPSC can have a little bit more data than you need to render, you know, both are approximate approximation of Of content and what you need to draw
06:22
so the again the format allows you to define multiple bounding volume criteria that allows you to to either sacrifice Performance or ease of use so You know all the minimum bounded spheres are very optimal for you know It's easy to use just as long as it's bound within that sphere
06:41
You can use whereas when you go in this slide on the slide to the right You are actually more conservative in what you're faging in other words You don't fetch buildings that are not required as you do when you're using MPS as For example in OBV case where you're more tighter in your bounding volume
07:01
So the current version of if I may go back the current version of i3s supports MPS and OBV and in the future other more compact forms like complex cell maybe But again in trying to balance, you know ease of use and optimality at the same time So what are the different layer types that are defined in i3s 3d object? This is
07:25
3d object layer type that we call is this typical 3d objects that you see in cityscapes, you know buildings cars whatever features that you can associate with Such type of data could be imported from all different sources OBJ's
07:43
3ds Colada, you know whatever format it is could be imported into the system and they belong to a profile called mesh pyramids Either is kind of introduces this profile concept where layers that have similar behavior are grouped into one profile and We will add or it will propose to the community adding more profiles in the future when it is significantly different than current
08:07
access patterns and usage so the other one very similar to the 3d objects is integrated mesh, which is skin of the earth data type data type that covers the whole entire Area it's typically collected from
08:22
photogrammetric or drone technology and structure from motion is usually employed to just generate the smashes from imagery Others point and point cloud are also well used and understood in GIS So these are the four layer types that are currently supported in i3s now again, as I said
08:42
i3s is You know evolving mature standard, but it was also evolving So all GC communities are working in adapting the address point cloud scene there as part of all GC 1.1. This three are part of 1.0 and 1.1 will bring in the point cloud scene there
09:01
Which is a process going on right now as we speak, but then There is more types buildings in there that has been introduced last year in the github community version is also a specific type of Building even though it looks very similar to mesh pyramids It's a different profile type because it can have points point cloud and mesh pyramids also in it a building layer
09:26
And we'll show a little bit example of that An example of this 3d object layer, this is city of San Francisco hundred thousand buildings I'll also show a live demo with textured buildings that have really high resolution data data content data is provided by content provider
09:45
PLW in this case, so very high resolution content, but scalable the key points that I want you to take away Is you know bounding volume hierarchy and multi multi loady multi level of detail is really central to the to the Specification you might not notice but you know as you zoom in and zoom out
10:03
You know multiple levels of details are displayed and are swapping out And that kind of gives you this illusion that you are looking at this continuous measure continuous data But also very efficient to load on mobile systems the browser and also desktop the second layer It's cousin three integrated mesh layer
10:21
Is a data that covers we call the skin of the earth type of data because it covers everything you know the trees the church This is the data for Marseille from context capture You know covers a lot of everything is captured captured really in that scene and very similar kind of you know Traversal pattern mesh pyramid as it belongs to the mesh pyramid
10:43
Profile and is very related to 3d objects now the only difference between this one and 3d objects really is that the mesh Segmentation information is not available here in other words You don't know what range of tangles occupy this basilica as opposed to in 3d objects each object is a feature So you do know you know the mesh range
11:03
Associated with that so that you can associate it with attribute or tabular information point clouds IDAR sources both Arial and as well as that are sterile are supported massive amounts of point cloud data can be captured and built into this
11:20
system and Could be displayed also again web desktop and browser and I'll show you the actual live demo Here's one concept that I want you to take a look. This is a building scene there and It will look back and you'll if you didn't catch it. You'll see what is going on here So imagine again taking the city of San Francisco and on top of one building put another city of San Francisco on it
11:46
So the idea here is that really when with the building scene there you're dealing with scale because you see so it zooms out This is San Francisco We picked one of the buildings and then I'm zooming in the same data kind of you know Shrunken to scale is put here and the idea here
12:02
We want to communicate is that with building scene layer really the kind of resolution and content that you have is You know the door knobs and the telephones and Things that are really high high Detail are captured with a building scene there But people want to visualize is it in the context of a building not just the objects that themselves in an empty scene
12:23
But you know with the context with the terrain and background and whatnot So that's the building scene there that is now available in the i3s github version But not yet know what you see soon to be hopefully That would allow you to do this kind of visualization All right moving on
12:44
Let's talk a little bit about the data structure how data is organized physical organization of data within a node I'm sorry. I don't know if you can see it, but I'll read it, but you'll get the slides anyway so in i3s this node index document is really central to the
13:02
data organization this document actually contains the LOD selection criteria basically the metric that you'd use to switch to a different node is defined in here. This is one metric that we have maximum screen threshold Basically, it's the size in pixels, and you'd say if it is bigger than this pixel
13:23
You know this projected size this value that I get in here Depending on what you are using if it is MBS you take the diameter of that MBS If it is bigger than what I have on the screen, then I'll go ahead and render it But if not, I'll go ahead and descend down and get its children and the children are also listed in here each children are you know?
13:44
Reference it by the parent node, so that's how the traversal continues Now only when you are ready as I said earlier that you'd fetch the data for geometry data Or only when it is appropriate to display it at that level of detail same for textured data or any Attribute or tabular information
14:02
Found the attribute data geometry data as well as texture or binary obviously for performance and optimization reason and whereas you know for example feature data that describes the Feature segmentation information is also present in this document now for optimality We also include the mesh segmentation information with the geometry data so that when you get a geometry
14:25
You not only will you be able to you know display the vertices of the triangles But also you'd know the range of triangles that occupy a certain feature annotated by its ID Let me go on to the next slide So here is a quick layout of what the geometry layout of a mesh pyramid 3d objects looks like
14:45
Remember what I talked about being able to segment the mesh So if you can think of that this really represent features feature 1 to n And one One feature really would occupy or would have this sort of format vertices are obviously this you know
15:02
We laid out XYZ If it has normals normals are present as well as texture coordinates if it is a textured data Regions are like subtextured data information that you used to have texture atlas for example defining Many features now in the geometry one single geometry actually could occupy many many many features
15:25
So it could have like, you know, depending on the capacity So this is like really left to the data cooker that builds that content to organize the data into Batchable or you know easily streamable content so that the texture is not too big So I've been told to have five minutes. So so the data is organized like this again. You'll get more information in that
15:47
That segmentation information as it is is occupied in the latter parts of the binary geometry data Again this is an improvement the 1.7 version of I3s has introduced a page index node Which is compacting of the nodes into this page node that would allow you to request
16:04
Thousands of nodes at once as opposed to one to one just to reduce the you know back and forth server time traffic texture also Now another thing that we introduced here in the geometry buffer is additional Draco compression Draco compression is more optimal to reduce the binary geometry data. So that one is introduced in the version 1.7 as well
16:27
Point class in there. I'll go briefly about this is again going through the Adoption processing node GC and all the information would be available here We introduced a new compression again Apache 2.0
16:42
on the public both the compression implementation both in C++ and JavaScript Decompressors that are provided Helps to really minimize the size of the data So I'm gonna Fly through some of the slides I3s layer can be presented into a package This is the package representation of I3s called SLPK where content could be organized for exchange
17:06
It's one file that you can actually share as well as it could be a service That was displayed in earlier slides Here are some examples of data a Netherlands hn1 hn3 lighter survey for point cloud
17:21
630 billion points really captured as a single actress SLPK That's probably the largest one that we've cooked You know texture buildings the ones that I showed you for San Francisco. So let me switch back to the demos and four minutes Let's see what we have
17:41
The links are here for the github link for the source as well as lepsy source and Documentation, but let me just quickly show you what I was talking about So here is the city of San Francisco the same data that very performant actually and you'll notice that it's swapping through different levels of
18:00
details connected just to the Wi-Fi network here and We not only would you be able to do that but also be able to actually select and edit fine object This is for 3d objects that have the mesh segmentation information Integrated mesh layer type that is covers, you know vast area This is from a company called near map for New York City again covers large amounts of area
18:23
No mesh segmentation information in here, but I know you are you are able to capture large amounts of area was was ease and represented in this format and then This is the Netherlands hn3 that I was talking about Very large collection of point cloud data covering the entire country and again captured as an i3s layer
18:46
Lastly, this is a new building layer that I was talking about that We have introduced not yet an OGC standard, but is going through the process and here typically what people do is They want to reveal, you know different layers So for example, I'm interested on level 3 only and then I'm also interested only
19:04
In the stairs, for example, I'm a structural engineer and I would like to see the stairs So in that case you can actually go ahead and say exclude You can you can you can play you can you can plant this planes basically planes that allows you to sort of like slice through it and
19:21
You see when I slice through it the whole the whole building disappeared and I can play through that But what I can also do is I can exclude certain features. For example, I can say the stairs are excluded So when I'm zooming through here, you see the state the stairs stay there so this is the buildings in there that we have and
19:41
Maybe while we do questions Want to show the same content really on the phone that because I trace actually works hold on mobile and Just using the phone right here. Let me open up and Same data same resources that I was showing you here can also be consumed in a native application or browser
20:08
Yeah, it's just on time just all right, so this is I think so Okay, thank you very much termite for this great presentation, so are there any questions regarding i3s so here we have one
20:28
I Have a quick question That's an open standard Are there any other implementations of i3s other than the one you have a on the server side and be on the representation side?
20:50
And on the server side really there is no requirement for the server You can put it the i3 standard behind an HTTP server and strip it Yeah, as we are today's server is you know first class isn't that you can use it, but there is no
21:07
And repeat the question right or So through to answer the question There is no requirement having an history product for example to be the back end you can put the i3s content behind an HTTP server
21:21
And in fact actually in the specification you will see how Let me go and show you real here I'm not connected Yeah in the specification you will see how In the specification you will see how you can lay out oh, yeah, how you can lay out the if you go to here format and
21:47
The index format it shows you at the bottom actually just use the table right here i3s Just go to the bottom actually I find it easier
22:03
Yeah Just search for like a store actually Data stores, and then you'll be able to see how you can lay it out onto your own HTTP server to be able to consume it SLPK Persistency here, sorry so
22:23
So yeah, you're not required to have any you know commercial for example software behind it you can lay it out as you want oh So the other question is to create it what are the sources so I didn't get to this last data, but here are
22:40
the slide here are about dozen or so data providers that are creating it Bentley near map I just saw all this you know data providers are actually providing i3s there's no you know the the key with address is really having that multi LOD data representation and Typically a lot of people would have just a single LOD for example from 3ds or OBJ in that case for example in the case
23:06
Of Esri we provide a tool that builds this multi LOD data from a single LOD But if you already have that which is the case with most of this data providers They already built multi LOD representation for mesh data. They can just pour it down to that so right now
23:22
We have commercial products that would allow you to create this I Tres content if you don't have the multi LOD representation But if you already have it you can just pour it down into the specification like this guys are doing most of this guys They are not using any Esri software to do that
23:43
Okay So the question is is there any tie-in between this? It's in there actually so when you use the Esri stack to create a building scene there Revit for example is a source
24:03
File now you know if you are creating a building scene layer outside of that and you won't have you know I've see for example is another format and Capture this there is no sort of you know requirement on that particular format It's just the current implementation that we have uses Revit now from Autodesk, and yeah
24:22
We probably have more you know more growth into that area directly consuming it back and forth You know the I trace the I trace in Autodesk and their content Maybe reality capture in ours, but Again the format is agnostic about the input data source. It does not know about
24:55
Okay good question so the question is what is really the goal of I3s What are you trying to solve is it just rendering or is there also some?
25:05
analytical process special operation that you are trying to Target I trace originally was designed to you know for a visualization purpose Because again there aren't that many Formats and starters really the ones I know is 3d tiles and I trace that could allow you to
25:22
Stream massive amount of mesh data, but then immediately you know as soon as that is kind of result That issues solved people really want to do also analysis they want to be able to do line-of-sight you know 3d domes and all that which the format does not preclude But it does not actively kind of right now does not promote, but I think that's more like an application side
25:43
You know applications can add Analytical capabilities, and we've started doing that with desktop application and probably move it to the web solution as well, so Alright, we're over a time right. Thank you Thank you Tamra again, so we will start again at 15 sharp