Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/guyettinger/gle-scene-components

GLE Scene Component Library
https://github.com/guyettinger/gle-scene-components

3d gaussian-splatting mobx react react-three-fiber resium typescript

Last synced: about 6 hours ago
JSON representation

GLE Scene Component Library

Awesome Lists containing this project

README

        


logo

# GLE Scene Components
[![Version](https://img.shields.io/npm/v/gle-scene-components?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/gle-scene-components)
[![Downloads](https://img.shields.io/npm/dt/gle-scene-components.svg?style=flat&colorA=000000&colorB=000000)](https://www.npmjs.com/package/gle-scene-components)

A React component library for building 3D scenes.

## Installation
```shell
npm install gle-scene-components
```

## Configuration
### Configure Resium
Follow the [Resium Install Guide ](https://resium.reearth.io/installation)

## Supports
- [React Three Fiber](https://github.com/pmndrs/react-three-fiber)
- [Resium](https://github.com/reearth/resium)
- [Potree](https://github.com/guyettinger/gle-potree)
- [Gaussian Splatting](https://github.com/guyettinger/gle-gaussian-splat-3d)
- [Cesium 3D Tiles](https://cesium.com/blog/2023/10/26/photorealistic-3d-tiles-in-cesium-ion/)
- [ThreeJS 3D Tiles](https://github.com/ebeaufay/threedtiles)
- [WebXR](https://github.com/pmndrs/react-xr)

## Documentation
- [Storybook](https://gle-scene-components.vercel.app/)

## Demos
- [Boxes](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--boxes)
- [Animated Boxes](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--animated-boxes)
- [Point Clouds](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--point-clouds)
- [Gaussian Splatting](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--gaussian-splat-clouds)
- [Coordinated Groups](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--coordinated-groups)
- [Google Photorealistic 3D Tiles](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--google-tiles)
- [Mesh 3D Tiles](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--three-d-tiles)
- [VR](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--vr)
- [AR](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--ar)

## Examples

![example-simple-scene.png](public%2Fimages%2Fexample-simple-scene.png)
```tsx
export const ExampleSimpleScene = () => {
return (









)
}
```
[Simple Example Demo](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--boxes)

![example-complex-scene.png](public%2Fimages%2Fexample-complex-scene.png)
```tsx
export const ExampleComplexScene = () => {

// coordinates
const upperArenaLongitudeLatitudeHeight = new Vector3(-83.765350, 34.401279, 357.0)
const barnParkingLotLongitudeLatitudeHeight = new Vector3(-83.76536188233062, 34.400715493095205, 353.0)
const lowerArenaLongitudeLatitudeHeight = new Vector3(-83.76612684589652, 34.40024525982904, 350.0)

// reference
const sceneRef = useRef(null)

return (
<>
sceneRef.current?.moveCameraToLongitudeLatitudeHeight(upperArenaLongitudeLatitudeHeight)}>
Upper Arena

sceneRef.current?.moveCameraToLongitudeLatitudeHeight(barnParkingLotLongitudeLatitudeHeight)}>
Parking

sceneRef.current?.moveCameraToLongitudeLatitudeHeight(lowerArenaLongitudeLatitudeHeight)}>
Lower Arena






















>
)
}
```
[Complex Example Demo](https://gle-scene-components.vercel.app/?path=/story/gle-scene-components-scene--everything)

## Development
Install
```
npm install
```
Build Library
```
npm run build
```
Run Tests
```
npm run test
```
Run Storybook
```
npm run storybook
```