Describe the feature you'd like:
A SKPLoader for native SketchUp (.skp) files — three-stdlib has loaders for most common 3D formats, but nothing for .skp. Today the only way to get a SketchUp model into a Three.js scene is exporting to glTF/OBJ from SketchUp first (needs SketchUp installed), or routing through a server-side conversion service.
Also posted as a discussion for open conversation before committing to a specific implementation: #436
Suggested implementation:
OpenSKP is an MIT-licensed, from-scratch .skp reader — no Trimble SDK, no native binary, pure TypeScript, works in both Node and the browser (openskp on npm). It already parses geometry, materials, layers, and instancing, and can bake a full triangulated scene via buildScene().
A SKPLoader extends Loader would read the file into an ArrayBuffer, call SkpFile.fromBuffer(buffer).buildScene(), and walk the result into THREE.Group/BufferGeometry/MeshStandardMaterial, the same shape OBJLoader/GLTFLoader already follow. There's a working reference implementation doing exactly this in OpenSKP's own example viewer (examples/web-viewer), so this wouldn't start from zero. Happy to put together the PR myself if this is wanted.
Describe the feature you'd like:
A
SKPLoaderfor native SketchUp (.skp) files — three-stdlib has loaders for most common 3D formats, but nothing for.skp. Today the only way to get a SketchUp model into a Three.js scene is exporting to glTF/OBJ from SketchUp first (needs SketchUp installed), or routing through a server-side conversion service.Also posted as a discussion for open conversation before committing to a specific implementation: #436
Suggested implementation:
OpenSKP is an MIT-licensed, from-scratch
.skpreader — no Trimble SDK, no native binary, pure TypeScript, works in both Node and the browser (openskpon npm). It already parses geometry, materials, layers, and instancing, and can bake a full triangulated scene viabuildScene().A
SKPLoader extends Loaderwould read the file into anArrayBuffer, callSkpFile.fromBuffer(buffer).buildScene(), and walk the result intoTHREE.Group/BufferGeometry/MeshStandardMaterial, the same shapeOBJLoader/GLTFLoaderalready follow. There's a working reference implementation doing exactly this in OpenSKP's own example viewer (examples/web-viewer), so this wouldn't start from zero. Happy to put together the PR myself if this is wanted.