@yschindel/ara3d-webgl 1.3.10 → 1.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,23 +1,23 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Ara 3D Inc.
4
- Copyright (c) 2021 VIMaec LLC.
5
- Copyright (c) 2018 Ara 3D Inc.
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the "Software"), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Ara 3D Inc.
4
+ Copyright (c) 2021 VIMaec LLC.
5
+ Copyright (c) 2018 Ara 3D Inc.
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -1,108 +1,113 @@
1
- # Ara 3D WebGL - BIM Open Schema Viewer
2
-
3
- ## [Live Demo](https://ara3d.github.io/ara3d-webgl/)
4
-
5
- <img
6
- src="https://github.com/user-attachments/assets/99407018-c5d2-46b2-b602-7e4671c87860"
7
- alt="BIM Open Schema Viewer"
8
- width="200"
9
- height="157"
10
- align="right"
11
- />
12
-
13
- A **WebGL viewer** for extremely large 3D models of buildings and infrastructure
14
- represented as [BIM Open Schema .BOS files](https://github.com/ara3d/bim-open-schema).
15
-
16
- BIM Open Schema is an ultra-compressed and portable BIM data format, which
17
- is easily extended, built on top [Parquet](https://parquet.apache.org/) format.
18
- A .BOS file is a ZIP archive that contains multiple Parquet files, which contain
19
- geometry, parameters, and other BIM data.
20
-
21
- ## Building and Running
22
-
23
- The project uses [vite](https://vite.dev/) for bundling and development.
24
-
25
- Some of the common tasks, which can be found in the `package.json`.
26
-
27
- - `npm run dev` - Running the vite dev server with "hot reloading"
28
- - `npm run build:docs` - Building the examples and API documentation.
29
- - `npm run serve:docs` - Testing the built examples and API documentation locally
30
- - `npm run build:lib` - Building the library as a JavaScript module (`.mjs`) file
31
-
32
- ## Camera Controls
33
-
34
- ### Keyboard
35
-
36
- - `W`, `Up` - Move camera forward
37
- - `A`, `Left` - Move camera to the left
38
- - `S`, `Down` - Move camera backward
39
- - `D`, `Right` - Move camera to the right
40
- - `E` - Move camera up
41
- - `Q` - Move camera down
42
- - `Shift` - faster camera movement while pressed
43
- - `+` - Increase camera speed
44
- - `-` - Decrease camera speed
45
-
46
- - `Space` - Toggle orbit mode
47
- - `Home` - Frame model
48
- - `Escape` - Clear selection
49
- - `F` Frame selection
50
-
51
- ### Mouse
52
-
53
- - `Hold left click + Move mouse` - Rotate camera in current mode
54
- - `Hold right click + Move mouse` - Pan/tilt camera
55
- - `Hold middle click + Move mouse` - Truck/pedestal camera
56
- - `Mouse wheel` - Dolly Camera
57
- - `Left click` - Select object
58
- - `Ctrl + Mouse wheel` - Increase/decrease camera speed
59
-
60
- ### Touch
61
-
62
- - `One Finger swipe` - Tilt/Pan camera
63
- - `Two Finger swipe` - Truck/Pedestal camera
64
- - `Two Finger pinch/spread` - Dolly Camera
65
-
66
- ## History
67
-
68
- At Ara 3D we created a simple 3D web-viewer in March 2019 which had support for multiple file formats.
69
- The goal was to minimize the amount of code required to create and host a Three.JS viewer in a web-page.
70
-
71
- The VIM team took over the project in July 2021 and the team, mostly Simon Roberge,
72
- added many features and enhancements. They also customized the project to meet the needs of their Power BI offering.
73
-
74
- On December 17, 2024, the VIM team archived the project, and merged it with their React-based viewer project into a
75
- new repository https://github.com/vimaec/vim-web. Today the VIM viewer is very powerful, but has become very specialized
76
- to their use-cases.
77
-
78
- In early 2025 the Ara 3D WebGL project was forked from an earlier snapshot of the repo to revive the spirit of the original viewer,
79
- while leveraging many of the excellent contributions made by VIM.
80
-
81
- Today in December 2026, we are focusing on using this viewer as a showcase of the [BIM Open Schema](https://github.com/ara3d/bim-open-schema)
82
- data format.
83
-
84
- ## Requesting Features, Improvements, or Changes
85
-
86
- Feel free to log issues or submit pull requests.
87
-
88
- We also offer very affordable custom software development services if you are using this project in a
89
- commercial context. For more information reach out to us at [info@ara3d.com](mailto:info@ara3d.com).
90
-
91
- # Appendix
92
-
93
- ## Related Projects: WebGL Viewers
94
-
95
- * [Autodesk Viewer](https://viewer.autodesk.com/)
96
- * [Bentley iTwin](https://www.itwinjs.org/)
97
- * [Babylon.JS](https://www.babylonjs.com/)
98
- * [Bldrs.AI](https://bldrs.ai/)
99
- * [Cesium](https://sandcastle.cesium.com/?src=Cesium%20OSM%20Buildings.html)
100
- * [e-verse GLTF viewer](https://gltfviewer.e-verse.com/)
101
- * [glTF Sample Viewer](https://github.com/KhronosGroup/glTF-Sample-Viewer)
102
- * [That Open Engine - Web IFC](https://github.com/ThatOpen/engine_web-ifc)
103
- * [Revit 3JS](https://github.com/McCulloughRT/Rvt3js)
104
- * [Speckle](https://github.com/specklesystems/speckle-server)
105
- * [vA3C](https://va3c.github.io/)
106
- * [VIMAEC Web](https://github.com/vimaec/vim-web)
107
- * [XBim Web UI](https://github.com/xBimTeam/XbimWebUI)
108
- * [Xeokit](https://github.com/xeokit/xeokit-sdk)
1
+ # Ara 3D WebGL - BIM Open Schema Viewer
2
+
3
+ ![NPM Version](https://img.shields.io/npm/v/%40ara3d%2Fara3d-webgl)
4
+
5
+ ## [Live Demo](https://ara3d.github.io/ara3d-webgl/)
6
+
7
+ <img
8
+ src="https://github.com/user-attachments/assets/99407018-c5d2-46b2-b602-7e4671c87860"
9
+ alt="BIM Open Schema Viewer"
10
+ width="200"
11
+ height="157"
12
+ align="right"
13
+ />
14
+
15
+ A **WebGL viewer** for extremely large 3D models of buildings and infrastructure
16
+ represented as [BIM Open Schema .BOS files](https://github.com/ara3d/bim-open-schema).
17
+
18
+ BIM Open Schema is an ultra-compressed and portable BIM data format, which
19
+ is easily extended, built on top [Parquet](https://parquet.apache.org/) format.
20
+ A .BOS file is a ZIP archive that contains multiple Parquet files, which contain
21
+ geometry, parameters, and other BIM data.
22
+
23
+ ## Show me the code!
24
+
25
+ We've tried to keep the code as straightforward and legible as possible:
26
+
27
+ - The Three.JS file loader: [`bimOpenSchemaLoader.ts`](https://github.com/ara3d/ara3d-webgl/blob/main/src/loader/bimOpenSchemaLoader.ts)
28
+ - The BIM Geometry type definition: [`bimGeometry.ts`](https://github.com/ara3d/ara3d-webgl/blob/main/src/loader/bimGeometry.ts)
29
+ - The conversion to Three.JS geometry: [`buildGeometryGroup.ts`](https://github.com/ara3d/ara3d-webgl/blob/main/src/loader/buildGeometryGroup.ts)
30
+
31
+ ## Building and Running
32
+
33
+ The project uses [vite](https://vite.dev/) for bundling and development.
34
+
35
+ Some of the common tasks, which can be found in the `package.json`.
36
+
37
+ - `npm run dev` - Running the vite dev server with "hot reloading"
38
+ - `npm run build:docs` - Building the examples and API documentation.
39
+ - `npm run serve:docs` - Testing the built examples and API documentation locally
40
+ - `npm run build:lib` - Building the library as a JavaScript module (`.mjs`) file
41
+
42
+ ## Camera Controls
43
+
44
+ ### Keyboard
45
+
46
+ - `W`, `Up` - Move camera forward
47
+ - `A`, `Left` - Move camera to the left
48
+ - `S`, `Down` - Move camera backward
49
+ - `D`, `Right` - Move camera to the right
50
+ - `E` - Move camera up
51
+ - `Q` - Move camera down
52
+ - `Shift` - faster camera movement while pressed
53
+ - `+` - Increase camera speed
54
+ - `-` - Decrease camera speed
55
+
56
+ ### Mouse
57
+
58
+ - `Hold left click + Move mouse` - Rotate camera in current mode
59
+ - `Hold right click + Move mouse` - Pan/tilt camera
60
+ - `Hold middle click + Move mouse` - Truck/pedestal camera
61
+ - `Mouse wheel` - Dolly Camera
62
+ - `Left click` - Select object
63
+ - `Ctrl + Mouse wheel` - Increase/decrease camera speed
64
+
65
+ ### Touch
66
+
67
+ - `One Finger swipe` - Tilt/Pan camera
68
+ - `Two Finger swipe` - Truck/Pedestal camera
69
+ - `Two Finger pinch/spread` - Dolly Camera
70
+
71
+ ## History
72
+
73
+ At Ara 3D we created a simple 3D web-viewer in March 2019 which had support for multiple file formats.
74
+ The goal was to minimize the amount of code required to create and host a Three.JS viewer in a web-page.
75
+
76
+ The VIM team took over the project in July 2021 and the team, mostly Simon Roberge,
77
+ added many features and enhancements. They also customized the project to meet the needs of their Power BI offering.
78
+
79
+ On December 17, 2024, the VIM team archived the project, and merged it with their React-based viewer project into a
80
+ new repository https://github.com/vimaec/vim-web. Today the VIM viewer is very powerful, but has become very specialized
81
+ to their use-cases.
82
+
83
+ In early 2025 the Ara 3D WebGL project was forked from an earlier snapshot of the repo to revive the spirit of the original viewer,
84
+ while leveraging many of the excellent contributions made by VIM.
85
+
86
+ Today in December 2026, we are focusing on using this viewer as a showcase of the [BIM Open Schema](https://github.com/ara3d/bim-open-schema)
87
+ data format.
88
+
89
+ ## Requesting Features, Improvements, or Changes
90
+
91
+ Feel free to log issues or submit pull requests.
92
+
93
+ We also offer very affordable custom software development services if you are using this project in a
94
+ commercial context. For more information reach out to us at [info@ara3d.com](mailto:info@ara3d.com).
95
+
96
+ # Appendix
97
+
98
+ ## Related Projects: WebGL Viewers
99
+
100
+ * [Autodesk Viewer](https://viewer.autodesk.com/)
101
+ * [Bentley iTwin](https://www.itwinjs.org/)
102
+ * [Babylon.JS](https://www.babylonjs.com/)
103
+ * [Bldrs.AI](https://bldrs.ai/)
104
+ * [Cesium](https://sandcastle.cesium.com/?src=Cesium%20OSM%20Buildings.html)
105
+ * [e-verse GLTF viewer](https://gltfviewer.e-verse.com/)
106
+ * [glTF Sample Viewer](https://github.com/KhronosGroup/glTF-Sample-Viewer)
107
+ * [That Open Engine - Web IFC](https://github.com/ThatOpen/engine_web-ifc)
108
+ * [Revit 3JS](https://github.com/McCulloughRT/Rvt3js)
109
+ * [Speckle](https://github.com/specklesystems/speckle-server)
110
+ * [vA3C](https://va3c.github.io/)
111
+ * [VIMAEC Web](https://github.com/vimaec/vim-web)
112
+ * [XBim Web UI](https://github.com/xBimTeam/XbimWebUI)
113
+ * [Xeokit](https://github.com/xeokit/xeokit-sdk)