Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/petrbroz/next-gen-viewer
Experimental Next-Gen Forge Viewer exploring different ways of modernizing or improving the current implementation.
https://github.com/petrbroz/next-gen-viewer
forge-viewer threejs typescript
Last synced: 19 days ago
JSON representation
Experimental Next-Gen Forge Viewer exploring different ways of modernizing or improving the current implementation.
- Host: GitHub
- URL: https://github.com/petrbroz/next-gen-viewer
- Owner: petrbroz
- Created: 2021-02-10T22:07:57.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-15T11:07:56.000Z (about 4 years ago)
- Last Synced: 2024-10-17T12:48:44.087Z (4 months ago)
- Topics: forge-viewer, threejs, typescript
- Language: TypeScript
- Homepage: https://petrbroz.s3-us-west-1.amazonaws.com/next-gen-viewer/test/basic/index.html
- Size: 65.4 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# next-gen-viewer
Experimental next-gen Forge Viewer exploring different ways of modernizing or improving the current implementation, for example:
- supporting newer versions of three.js
- supporting ES6+ features like modules (and perhaps generators?)
- replacing callbacks with promises and async/await
- supporting TypeScript
- better supporting multi-model> The `master` branch is automatically deployed to S3 and a basic test page can be accessed via https://petrbroz.s3-us-west-1.amazonaws.com/next-gen-viewer/test/basic/index.html.
## Notes
- Worth mentioning
- No bundling needed (customer applications can bundle everything if needed)
- The only build step is the TypeScript transpilation
- Auto-complete and type checking of three.js classes (at least in VSCode)
- Auto-complete of the viewer API inside the sample app's code
- Simple access to "example" three.js components like OrbitControls, loaded simply as ES6 modules
- Env. maps loaded using three.js' PMREM and EXR loaders
- Models loaded using three.js' glTF and Draco loaders
- Selection highlighting using three.js' effect composer and outline pass
- Models deployed to S3 are gzipped and uploaded with `Content-Encoding: gzip`
- In case of _rme_advanced_sample_project_ it brings the size from 50MB down to ~1.5MB
- Weird
- TypeScript doesn't allow using `.ts` in import paths but if you use `.js`, it will try and find the corresponding `.ts` file; that's what the code does today
- Types for different three.js experiments must be listed in _tsconfig.json_
- Draco binaries currently loaded on-demand from https://www.gstatic.com/draco/versioned/decoders/1.4.1