Skip to content

Simulation Editing #1691

@leshy

Description

@leshy

original issue provided
#1120

Model importing

We'd like access to standard threejs model loading primitives

https://threejs.org/manual/#en/loading-3d-models

import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
const loader = new GLTFLoader();

loader.load( 'path/to/model.glb', function ( gltf ) {
  scene.add( gltf.scene );
})

Standard threejs API

as well as all the standard threejs API

Primitives
Scenegraph
Materials
Textures
Lights
Cameras
Shadows
Fog

etc, I'm assuming you won't need to write extra code for this, threejs api is already available.

Optional physics for models

If loading a global map, we'll want to enable colisions so that robot doesn't fall through the map.
for random visual elements (skybox) we won't need physics, but I can imagine adding a ball, or a car model (obstacle) which we do want colisions on

Movable characters

We are testing stuff like person follow etc, I assume giving us threejs API access we can easily animate a character in the world, just making sure to mention here

Robot definition API

we should be able to code simple control interface and a simple robot (drone, holonomic, plane, car) etc

System Validation

To validate the delivery, we'd like to see these examples to validate how easy the API is to use. all of below should be reasonably performant as well

ThreeJS API exposed

Deploy a robot sim in a random threejs example environment:

https://threejs.org/examples/#webgl_lights_physical
https://threejs.org/examples/#webgl_loader_ifc
https://threejs.org/examples/#webgpu_performance

Third party map load

load something like https://sketchfab.com/3d-models/lowpoly-fps-tdm-game-map-by-resoforge-d41a19f699ea421a9aa32b407cb7537b

Deploy the robot within this world.

New elements

Add a car model to the world with collisions enabled

Some reasonable editing flow (like threejs has)

change the position of an object, reload, check, add a light, reload etc

New embodiment

Code a drone (vs holonomic what we have now), deploy within a world above

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions