{"id":15366310,"url":"https://github.com/petrbroz/next-gen-viewer","last_synced_at":"2025-03-27T21:22:17.639Z","repository":{"id":93592345,"uuid":"337867024","full_name":"petrbroz/next-gen-viewer","owner":"petrbroz","description":"Experimental Next-Gen Forge Viewer exploring different ways of modernizing or improving the current implementation.","archived":false,"fork":false,"pushed_at":"2021-02-15T11:07:56.000Z","size":67,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T23:43:20.188Z","etag":null,"topics":["forge-viewer","threejs","typescript"],"latest_commit_sha":null,"homepage":"https://petrbroz.s3-us-west-1.amazonaws.com/next-gen-viewer/test/basic/index.html","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petrbroz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-10T22:07:57.000Z","updated_at":"2021-10-29T13:08:11.000Z","dependencies_parsed_at":"2023-03-13T17:16:53.533Z","dependency_job_id":null,"html_url":"https://github.com/petrbroz/next-gen-viewer","commit_stats":{"total_commits":16,"total_committers":1,"mean_commits":16.0,"dds":0.0,"last_synced_commit":"c8f95bd16049d6fc3b9742405f583e386ef1d575"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrbroz%2Fnext-gen-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrbroz%2Fnext-gen-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrbroz%2Fnext-gen-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrbroz%2Fnext-gen-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petrbroz","download_url":"https://codeload.github.com/petrbroz/next-gen-viewer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245924728,"owners_count":20694771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["forge-viewer","threejs","typescript"],"created_at":"2024-10-01T13:18:29.702Z","updated_at":"2025-03-27T21:22:17.605Z","avatar_url":"https://github.com/petrbroz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# next-gen-viewer\n\nExperimental next-gen Forge Viewer exploring different ways of modernizing or improving the current implementation, for example:\n\n- supporting newer versions of three.js\n- supporting ES6+ features like modules (and perhaps generators?)\n- replacing callbacks with promises and async/await\n- supporting TypeScript\n- better supporting multi-model\n\n\u003e 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.\n\n## Notes\n\n- Worth mentioning\n  - No bundling needed (customer applications can bundle everything if needed)\n  - The only build step is the TypeScript transpilation\n  - Auto-complete and type checking of three.js classes (at least in VSCode)\n  - Auto-complete of the viewer API inside the sample app's code\n  - Simple access to \"example\" three.js components like OrbitControls, loaded simply as ES6 modules\n    - Env. maps loaded using three.js' PMREM and EXR loaders\n    - Models loaded using three.js' glTF and Draco loaders\n  - Selection highlighting using three.js' effect composer and outline pass\n  - Models deployed to S3 are gzipped and uploaded with `Content-Encoding: gzip`\n    - In case of _rme_advanced_sample_project_ it brings the size from 50MB down to ~1.5MB\n- Weird\n  - 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\n  - Types for different three.js experiments must be listed in _tsconfig.json_\n  - Draco binaries currently loaded on-demand from https://www.gstatic.com/draco/versioned/decoders/1.4.1","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrbroz%2Fnext-gen-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetrbroz%2Fnext-gen-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrbroz%2Fnext-gen-viewer/lists"}