blanchon commited on
Commit
838a719
Β·
1 Parent(s): 3cdf7b9
README.md CHANGED
@@ -15,7 +15,7 @@ app_port: 8000
15
  pinned: true
16
  license: mit
17
  fullWidth: true
18
- short_description: Web interface of the RobotHub platform – build, monitor & control robots with AI assistance
19
  ---
20
 
21
  # πŸ€– RobotHub Arena – Frontend
 
15
  pinned: true
16
  license: mit
17
  fullWidth: true
18
+ short_description: Web interface of the RobotHub platform
19
  ---
20
 
21
  # πŸ€– RobotHub Arena – Frontend
bun.lock CHANGED
@@ -6,6 +6,7 @@
6
  "dependencies": {
7
  "@robothub/inference-server-client": "file:./external/RobotHub-InferenceServer/client",
8
  "@robothub/transport-server-client": "file:./external/RobotHub-InferenceServer/external/RobotHub-TransportServer/client/js",
 
9
  "@threlte/core": "^8.0.4",
10
  "@threlte/extras": "^9.2.1",
11
  "@types/three": "0.177.0",
@@ -255,6 +256,8 @@
255
 
256
  "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.44.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ=="],
257
 
 
 
258
  "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.5", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ=="],
259
 
260
  "@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@6.0.1", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-mcWud3pYGPWM2Pphdj8G9Qiq24nZ8L4LB7coCUckUEy5Y7wOWGJ/enaZ4AtJTcSm5dNK1rIkBRoqt+ae4zlxcQ=="],
 
6
  "dependencies": {
7
  "@robothub/inference-server-client": "file:./external/RobotHub-InferenceServer/client",
8
  "@robothub/transport-server-client": "file:./external/RobotHub-InferenceServer/external/RobotHub-TransportServer/client/js",
9
+ "@sparkjsdev/spark": "^0.1.4",
10
  "@threlte/core": "^8.0.4",
11
  "@threlte/extras": "^9.2.1",
12
  "@types/three": "0.177.0",
 
256
 
257
  "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.44.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ=="],
258
 
259
+ "@sparkjsdev/spark": ["@sparkjsdev/spark@0.1.4", "", { "dependencies": { "fflate": "^0.8.2" } }, "sha512-VbrZFx96mOEYEhdPoeG39lSc1axRULJNqBH1gRqOjGKo1UcG3yVpva6+jJt2Aat3V4kwH8TwdGvlQypzABrxhg=="],
260
+
261
  "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.5", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ=="],
262
 
263
  "@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@6.0.1", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-mcWud3pYGPWM2Pphdj8G9Qiq24nZ8L4LB7coCUckUEy5Y7wOWGJ/enaZ4AtJTcSm5dNK1rIkBRoqt+ae4zlxcQ=="],
package.json CHANGED
@@ -48,13 +48,14 @@
48
  "vite": "^6.3.5"
49
  },
50
  "dependencies": {
 
 
 
51
  "@threlte/core": "^8.0.4",
52
  "@threlte/extras": "^9.2.1",
53
  "@types/three": "0.177.0",
54
  "clsx": "^2.1.1",
55
  "feetech.js": "file:./packages/feetech.js",
56
- "@robothub/transport-server-client": "file:./external/RobotHub-InferenceServer/external/RobotHub-TransportServer/client/js",
57
- "@robothub/inference-server-client": "file:./external/RobotHub-InferenceServer/client",
58
  "tailwind-merge": "^3.3.0",
59
  "three": "^0.177.0",
60
  "threlte-uikit": "^1.1.0",
 
48
  "vite": "^6.3.5"
49
  },
50
  "dependencies": {
51
+ "@robothub/inference-server-client": "file:./external/RobotHub-InferenceServer/client",
52
+ "@robothub/transport-server-client": "file:./external/RobotHub-InferenceServer/external/RobotHub-TransportServer/client/js",
53
+ "@sparkjsdev/spark": "^0.1.4",
54
  "@threlte/core": "^8.0.4",
55
  "@threlte/extras": "^9.2.1",
56
  "@types/three": "0.177.0",
57
  "clsx": "^2.1.1",
58
  "feetech.js": "file:./packages/feetech.js",
 
 
59
  "tailwind-merge": "^3.3.0",
60
  "three": "^0.177.0",
61
  "threlte-uikit": "^1.1.0",
packages/feetech.js/package.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "feetech.js",
3
- "version": "0.0.8",
4
  "description": "javascript sdk for feetech servos",
5
  "main": "index.mjs",
6
  "files": [
 
1
  {
2
  "name": "feetech.js",
3
+ "version": "0.0.11",
4
  "description": "javascript sdk for feetech servos",
5
  "main": "index.mjs",
6
  "files": [
src/lib/components/3d/elements/robot/URDF/primitives/UrdfLink.svelte CHANGED
@@ -8,7 +8,7 @@
8
  import UrdfJoint from "./UrdfJoint.svelte";
9
  import type IUrdfRobot from "../interfaces/IUrdfRobot";
10
  import { T } from "@threlte/core";
11
- // import Pointcloud from "@/components/test/Pointcloud.svelte";
12
 
13
  interface Props {
14
  robot: IUrdfRobot;
@@ -104,14 +104,14 @@
104
  <T.BoxGeometry />
105
  <T.MeshBasicMaterial color="red" />
106
  </T.Mesh>
107
- <!-- <Pointcloud
108
  cameraPositionX={joint.origin_xyz[0]}
109
  cameraPositionY={joint.origin_xyz[1]}
110
  cameraPositionZ={joint.origin_xyz[2]}
111
  cameraRotationX={joint.origin_rpy[0]}
112
  cameraRotationY={joint.origin_rpy[1]}
113
  cameraRotationZ={joint.origin_rpy[2]}
114
- /> -->
115
  </T.Group>
116
  </T.Group>
117
  {/if}
 
8
  import UrdfJoint from "./UrdfJoint.svelte";
9
  import type IUrdfRobot from "../interfaces/IUrdfRobot";
10
  import { T } from "@threlte/core";
11
+ import Pointcloud from "@/components/3d/misc/Pointcloud.svelte";
12
 
13
  interface Props {
14
  robot: IUrdfRobot;
 
104
  <T.BoxGeometry />
105
  <T.MeshBasicMaterial color="red" />
106
  </T.Mesh>
107
+ <Pointcloud
108
  cameraPositionX={joint.origin_xyz[0]}
109
  cameraPositionY={joint.origin_xyz[1]}
110
  cameraPositionZ={joint.origin_xyz[2]}
111
  cameraRotationX={joint.origin_rpy[0]}
112
  cameraRotationY={joint.origin_rpy[1]}
113
  cameraRotationZ={joint.origin_rpy[2]}
114
+ />
115
  </T.Group>
116
  </T.Group>
117
  {/if}
src/lib/elements/video/VideoManager.svelte.ts CHANGED
@@ -36,9 +36,6 @@ export class VideoInstance implements Positionable {
36
  active: false,
37
  client: null as videoTypes.VideoProducer | null,
38
  roomId: null as string | null,
39
- // New properties for UI state
40
- type: null as 'recording' | 'remote' | null,
41
- stream: null as MediaStream | null,
42
  });
43
 
44
  // Position (reactive and bindable)
@@ -275,8 +272,6 @@ export class VideoManager {
275
  video.output.active = true;
276
  video.output.client = producer;
277
  video.output.roomId = roomId;
278
- video.output.type = 'remote';
279
- video.output.stream = video.input.stream;
280
 
281
  console.log(`Video output started to room ${roomId} for video ${videoId}`);
282
  return { success: true };
@@ -535,8 +530,6 @@ export class VideoManager {
535
  video.output.active = true;
536
  video.output.client = producer;
537
  video.output.roomId = result.roomId;
538
- video.output.type = 'remote';
539
- video.output.stream = video.input.stream;
540
 
541
  // Refresh room list
542
  await this.listRooms(workspaceId);
@@ -561,8 +554,6 @@ export class VideoManager {
561
  video.output.active = false;
562
  video.output.client = null;
563
  video.output.roomId = null;
564
- video.output.type = null;
565
- video.output.stream = null;
566
 
567
  console.log(`Output stopped for video ${videoId}`);
568
  }
 
36
  active: false,
37
  client: null as videoTypes.VideoProducer | null,
38
  roomId: null as string | null,
 
 
 
39
  });
40
 
41
  // Position (reactive and bindable)
 
272
  video.output.active = true;
273
  video.output.client = producer;
274
  video.output.roomId = roomId;
 
 
275
 
276
  console.log(`Video output started to room ${roomId} for video ${videoId}`);
277
  return { success: true };
 
530
  video.output.active = true;
531
  video.output.client = producer;
532
  video.output.roomId = result.roomId;
 
 
533
 
534
  // Refresh room list
535
  await this.listRooms(workspaceId);
 
554
  video.output.active = false;
555
  video.output.client = null;
556
  video.output.roomId = null;
 
 
557
 
558
  console.log(`Output stopped for video ${videoId}`);
559
  }