jurmy24 commited on
Commit
72f0edb
·
1 Parent(s): 16ab111

feat: add viewer code

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. viewer/.env.public +2 -0
  2. viewer/.gitignore +7 -0
  3. viewer/README.md +41 -52
  4. viewer/components.json +20 -0
  5. viewer/deploy-function.js +39 -0
  6. viewer/eslint.config.js +14 -13
  7. viewer/index.html +8 -3
  8. viewer/package-lock.json +0 -0
  9. viewer/package.json +79 -19
  10. viewer/postcss.config.js +6 -0
  11. viewer/public/favicon.ico +0 -0
  12. viewer/public/placeholder.svg +1 -0
  13. viewer/public/urdf/T12/meshes/Ankle1.STL +0 -0
  14. viewer/public/urdf/T12/meshes/Ankle2.STL +0 -0
  15. viewer/public/urdf/T12/meshes/Ankle3.STL +0 -0
  16. viewer/public/urdf/T12/meshes/Ankle4.STL +0 -0
  17. viewer/public/urdf/T12/meshes/Ankle5.STL +0 -0
  18. viewer/public/urdf/T12/meshes/Ankle6.STL +0 -0
  19. viewer/public/urdf/T12/meshes/Body.STL +0 -0
  20. viewer/public/urdf/T12/meshes/Foot1.STL +0 -0
  21. viewer/public/urdf/T12/meshes/Foot2.STL +0 -0
  22. viewer/public/urdf/T12/meshes/Foot3.STL +0 -0
  23. viewer/public/urdf/T12/meshes/Foot4.STL +0 -0
  24. viewer/public/urdf/T12/meshes/Foot5.STL +0 -0
  25. viewer/public/urdf/T12/meshes/Foot6.STL +0 -0
  26. viewer/public/urdf/T12/meshes/Hip1.STL +0 -0
  27. viewer/public/urdf/T12/meshes/Hip2.STL +0 -0
  28. viewer/public/urdf/T12/meshes/Hip3.STL +0 -0
  29. viewer/public/urdf/T12/meshes/Hip4.STL +0 -0
  30. viewer/public/urdf/T12/meshes/Hip5.STL +0 -0
  31. viewer/public/urdf/T12/meshes/Hip6.STL +0 -0
  32. viewer/public/urdf/T12/meshes/Knee1.STL +0 -0
  33. viewer/public/urdf/T12/meshes/Knee2.STL +0 -0
  34. viewer/public/urdf/T12/meshes/Knee3.STL +0 -0
  35. viewer/public/urdf/T12/meshes/Knee4.STL +0 -0
  36. viewer/public/urdf/T12/meshes/Knee5.STL +0 -0
  37. viewer/public/urdf/T12/meshes/Knee6.STL +0 -0
  38. viewer/public/urdf/T12/meshes/Shin1.STL +0 -0
  39. viewer/public/urdf/T12/meshes/Shin2.STL +0 -0
  40. viewer/public/urdf/T12/meshes/Shin3.STL +0 -0
  41. viewer/public/urdf/T12/meshes/Shin4.STL +0 -0
  42. viewer/public/urdf/T12/meshes/Shin5.STL +0 -0
  43. viewer/public/urdf/T12/meshes/Shin6.STL +0 -0
  44. viewer/public/urdf/T12/meshes/Thigh1.STL +0 -0
  45. viewer/public/urdf/T12/meshes/Thigh2.STL +0 -0
  46. viewer/public/urdf/T12/meshes/Thigh3.STL +0 -0
  47. viewer/public/urdf/T12/meshes/Thigh4.STL +0 -0
  48. viewer/public/urdf/T12/meshes/Thigh5.STL +0 -0
  49. viewer/public/urdf/T12/meshes/Thigh6.STL +0 -0
  50. viewer/public/urdf/T12/robot-data.json +57 -0
viewer/.env.public ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ VITE_SUPABASE_URL=https://mizajlqhooderueazvnp.supabase.co
2
+ VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im1pemFqbHFob29kZXJ1ZWF6dm5wIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDE4NzU1MTgsImV4cCI6MjA1NzQ1MTUxOH0.iTbP3KqPr4Fl48YQnlwplyPF3OCTjU5g62WmmygjSbA
viewer/.gitignore CHANGED
@@ -22,3 +22,10 @@ dist-ssr
22
  *.njsproj
23
  *.sln
24
  *.sw?
 
 
 
 
 
 
 
 
22
  *.njsproj
23
  *.sln
24
  *.sw?
25
+
26
+ # Environment variables
27
+ .env.*
28
+ .env
29
+
30
+ # Exclude .env.public
31
+ !.env.public
viewer/README.md CHANGED
@@ -1,54 +1,43 @@
1
- # React + TypeScript + Vite
2
-
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
-
5
- Currently, two official plugins are available:
6
-
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9
-
10
- ## Expanding the ESLint configuration
11
-
12
- If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
13
-
14
- ```js
15
- export default tseslint.config({
16
- extends: [
17
- // Remove ...tseslint.configs.recommended and replace with this
18
- ...tseslint.configs.recommendedTypeChecked,
19
- // Alternatively, use this for stricter rules
20
- ...tseslint.configs.strictTypeChecked,
21
- // Optionally, add this for stylistic rules
22
- ...tseslint.configs.stylisticTypeChecked,
23
- ],
24
- languageOptions: {
25
- // other options...
26
- parserOptions: {
27
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
28
- tsconfigRootDir: import.meta.dirname,
29
- },
30
- },
31
- })
32
- ```
33
 
34
- You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
35
-
36
- ```js
37
- // eslint.config.js
38
- import reactX from 'eslint-plugin-react-x'
39
- import reactDom from 'eslint-plugin-react-dom'
40
-
41
- export default tseslint.config({
42
- plugins: {
43
- // Add the react-x and react-dom plugins
44
- 'react-x': reactX,
45
- 'react-dom': reactDom,
46
- },
47
- rules: {
48
- // other rules...
49
- // Enable its recommended typescript rules
50
- ...reactX.configs['recommended-typescript'].rules,
51
- ...reactDom.configs.recommended.rules,
52
- },
53
- })
54
  ```
 
 
 
 
 
 
 
 
 
 
 
1
+ # URDF Web Visualizer
2
+
3
+ **URL**: https://urdf-web-visualizer.lovable.app/
4
+
5
+ ## How can I edit this code?
6
+
7
+ **Use Lovable**
8
+
9
+ Simply visit the [ Project](https://lovable.dev/projects/3aab3fa4-10e6-4c4a-8d12-b46271876519) and start prompting.
10
+
11
+ Changes made via Lovable will be committed automatically to the main branch of this repo.
12
+
13
+ **IDE**
14
+
15
+ Have Node.js & npm installed - [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating). You can also use bun instead of npm.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
+ Follow these steps:
18
+
19
+ ```sh
20
+ # Step 1: Clone the repository using the project's Git URL.
21
+ git clone <YOUR_GIT_URL>
22
+
23
+ # Step 2: Navigate to the project directory.
24
+ cd <YOUR_PROJECT_NAME>
25
+
26
+ # Step 3: Install the necessary dependencies.
27
+ npm i
28
+ # (OR bun install)
29
+
30
+ # Step 4: Start the development server with auto-reloading and an instant preview.
31
+ npm run dev
32
+ # (OR bun run dev)
 
 
 
 
33
  ```
34
+
35
+ ## What technologies are used for this project?
36
+
37
+ This project is built with:
38
+
39
+ - Vite
40
+ - TypeScript
41
+ - React
42
+ - shadcn-ui
43
+ - Tailwind CSS
viewer/components.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.ts",
8
+ "css": "src/index.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/lib",
18
+ "hooks": "@/hooks"
19
+ }
20
+ }
viewer/deploy-function.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // This is a script to deploy an edge function to supabase.
2
+ const { execSync } = require("child_process");
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ // Function name to deploy
7
+ const functionName = process.argv[2];
8
+
9
+ if (!functionName) {
10
+ console.error("Please provide a function name to deploy");
11
+ console.log("Example: node deploy-function.js urdf-parser");
12
+ process.exit(1);
13
+ }
14
+
15
+ // Path to the function directory
16
+ const functionDir = path.join(__dirname, "supabase", "functions", functionName);
17
+
18
+ // Check if the function directory exists
19
+ if (!fs.existsSync(functionDir)) {
20
+ console.error(`Function ${functionName} not found in supabase/functions/`);
21
+ process.exit(1);
22
+ }
23
+
24
+ console.log(`Deploying function ${functionName}...`);
25
+
26
+ try {
27
+ // Deploy the function
28
+ execSync(`npx supabase functions deploy ${functionName}`, {
29
+ stdio: "inherit",
30
+ env: {
31
+ ...process.env,
32
+ SUPABASE_ACCESS_TOKEN: process.env.SUPABASE_ACCESS_TOKEN,
33
+ },
34
+ });
35
+ console.log(`✅ Function ${functionName} deployed successfully!`);
36
+ } catch (error) {
37
+ console.error(`❌ Failed to deploy function: ${error.message}`);
38
+ process.exit(1);
39
+ }
viewer/eslint.config.js CHANGED
@@ -1,28 +1,29 @@
1
- import js from '@eslint/js'
2
- import globals from 'globals'
3
- import reactHooks from 'eslint-plugin-react-hooks'
4
- import reactRefresh from 'eslint-plugin-react-refresh'
5
- import tseslint from 'typescript-eslint'
6
 
7
  export default tseslint.config(
8
- { ignores: ['dist'] },
9
  {
10
  extends: [js.configs.recommended, ...tseslint.configs.recommended],
11
- files: ['**/*.{ts,tsx}'],
12
  languageOptions: {
13
  ecmaVersion: 2020,
14
  globals: globals.browser,
15
  },
16
  plugins: {
17
- 'react-hooks': reactHooks,
18
- 'react-refresh': reactRefresh,
19
  },
20
  rules: {
21
  ...reactHooks.configs.recommended.rules,
22
- 'react-refresh/only-export-components': [
23
- 'warn',
24
  { allowConstantExport: true },
25
  ],
 
26
  },
27
- },
28
- )
 
1
+ import js from "@eslint/js";
2
+ import globals from "globals";
3
+ import reactHooks from "eslint-plugin-react-hooks";
4
+ import reactRefresh from "eslint-plugin-react-refresh";
5
+ import tseslint from "typescript-eslint";
6
 
7
  export default tseslint.config(
8
+ { ignores: ["dist"] },
9
  {
10
  extends: [js.configs.recommended, ...tseslint.configs.recommended],
11
+ files: ["**/*.{ts,tsx}"],
12
  languageOptions: {
13
  ecmaVersion: 2020,
14
  globals: globals.browser,
15
  },
16
  plugins: {
17
+ "react-hooks": reactHooks,
18
+ "react-refresh": reactRefresh,
19
  },
20
  rules: {
21
  ...reactHooks.configs.recommended.rules,
22
+ "react-refresh/only-export-components": [
23
+ "warn",
24
  { allowConstantExport: true },
25
  ],
26
+ "@typescript-eslint/no-unused-vars": "warn",
27
  },
28
+ }
29
+ );
viewer/index.html CHANGED
@@ -1,13 +1,18 @@
1
- <!doctype html>
2
  <html lang="en">
3
  <head>
4
  <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>Vite + React + TS</title>
 
 
 
8
  </head>
 
9
  <body>
10
  <div id="root"></div>
 
 
11
  <script type="module" src="/src/main.tsx"></script>
12
  </body>
13
  </html>
 
1
+ <!DOCTYPE html>
2
  <html lang="en">
3
  <head>
4
  <meta charset="UTF-8" />
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>placeholder</title>
7
+ <meta name="description" content="A simple tool to visualize URDF files." />
8
+ <meta name="author" content="Victor Oldensand" />
9
+ <meta property="og:image" content="/og-image.png" />
10
  </head>
11
+
12
  <body>
13
  <div id="root"></div>
14
+ <!-- IMPORTANT: DO NOT REMOVE THIS SCRIPT TAG OR THIS VERY COMMENT! -->
15
+ <script src="https://cdn.gpteng.co/gptengineer.js" type="module"></script>
16
  <script type="module" src="/src/main.tsx"></script>
17
  </body>
18
  </html>
viewer/package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
viewer/package.json CHANGED
@@ -1,34 +1,94 @@
1
  {
2
- "name": "viewer",
3
  "private": true,
4
  "version": "0.0.0",
5
  "type": "module",
6
  "scripts": {
7
  "dev": "vite",
8
- "build": "tsc -b && vite build",
 
9
  "lint": "eslint .",
10
  "preview": "vite preview"
11
  },
12
  "dependencies": {
13
- "@types/node": "^22.14.1",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  "clsx": "^2.1.1",
15
- "react": "^19.0.0",
16
- "react-dom": "^19.0.0",
17
- "sonner": "^2.0.3",
18
- "tailwind-merge": "^3.2.0",
19
- "urdf-loader": "^0.12.4"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  },
21
  "devDependencies": {
22
- "@eslint/js": "^9.22.0",
23
- "@types/react": "^19.0.10",
24
- "@types/react-dom": "^19.0.4",
25
- "@vitejs/plugin-react": "^4.3.4",
26
- "eslint": "^9.22.0",
27
- "eslint-plugin-react-hooks": "^5.2.0",
28
- "eslint-plugin-react-refresh": "^0.4.19",
29
- "globals": "^16.0.0",
30
- "typescript": "~5.7.2",
31
- "typescript-eslint": "^8.26.1",
32
- "vite": "^6.3.1"
 
 
 
 
 
 
33
  }
34
  }
 
1
  {
2
+ "name": "vite_react_shadcn_ts",
3
  "private": true,
4
  "version": "0.0.0",
5
  "type": "module",
6
  "scripts": {
7
  "dev": "vite",
8
+ "build": "vite build",
9
+ "build:dev": "vite build --mode development",
10
  "lint": "eslint .",
11
  "preview": "vite preview"
12
  },
13
  "dependencies": {
14
+ "@hookform/resolvers": "^3.9.0",
15
+ "@radix-ui/react-accordion": "^1.2.0",
16
+ "@radix-ui/react-alert-dialog": "^1.1.1",
17
+ "@radix-ui/react-aspect-ratio": "^1.1.0",
18
+ "@radix-ui/react-avatar": "^1.1.0",
19
+ "@radix-ui/react-checkbox": "^1.1.1",
20
+ "@radix-ui/react-collapsible": "^1.1.0",
21
+ "@radix-ui/react-context-menu": "^2.2.1",
22
+ "@radix-ui/react-dialog": "^1.1.2",
23
+ "@radix-ui/react-dropdown-menu": "^2.1.1",
24
+ "@radix-ui/react-hover-card": "^1.1.1",
25
+ "@radix-ui/react-label": "^2.1.0",
26
+ "@radix-ui/react-menubar": "^1.1.1",
27
+ "@radix-ui/react-navigation-menu": "^1.2.0",
28
+ "@radix-ui/react-popover": "^1.1.1",
29
+ "@radix-ui/react-progress": "^1.1.0",
30
+ "@radix-ui/react-radio-group": "^1.2.0",
31
+ "@radix-ui/react-scroll-area": "^1.1.0",
32
+ "@radix-ui/react-select": "^2.1.1",
33
+ "@radix-ui/react-separator": "^1.1.0",
34
+ "@radix-ui/react-slider": "^1.2.0",
35
+ "@radix-ui/react-slot": "^1.1.0",
36
+ "@radix-ui/react-switch": "^1.1.0",
37
+ "@radix-ui/react-tabs": "^1.1.0",
38
+ "@radix-ui/react-toast": "^1.2.1",
39
+ "@radix-ui/react-toggle": "^1.1.0",
40
+ "@radix-ui/react-toggle-group": "^1.1.0",
41
+ "@radix-ui/react-tooltip": "^1.1.4",
42
+ "@splinetool/react-spline": "^4.0.0",
43
+ "@supabase/supabase-js": "^2.49.1",
44
+ "@tanstack/react-query": "^5.56.2",
45
+ "@tanstack/react-query-devtools": "^5.71.1",
46
+ "@types/three": "^0.174.0",
47
+ "@types/uuid": "^10.0.0",
48
+ "class-variance-authority": "^0.7.1",
49
  "clsx": "^2.1.1",
50
+ "cmdk": "^1.0.0",
51
+ "date-fns": "^3.6.0",
52
+ "dotenv": "^16.4.7",
53
+ "embla-carousel-react": "^8.3.0",
54
+ "framer-motion": "^12.5.0",
55
+ "input-otp": "^1.2.4",
56
+ "jszip": "^3.10.1",
57
+ "lucide-react": "^0.462.0",
58
+ "next-themes": "^0.3.0",
59
+ "react": "^18.3.1",
60
+ "react-day-picker": "^8.10.1",
61
+ "react-dom": "^18.3.1",
62
+ "react-hook-form": "^7.53.0",
63
+ "react-resizable-panels": "^2.1.3",
64
+ "react-router-dom": "^6.26.2",
65
+ "recharts": "^2.12.7",
66
+ "sonner": "^1.5.0",
67
+ "tailwind-merge": "^2.5.2",
68
+ "tailwindcss-animate": "^1.0.7",
69
+ "three": "^0.174.0",
70
+ "urdf-loader": "^0.12.4",
71
+ "uuid": "^11.1.0",
72
+ "vaul": "^0.9.3",
73
+ "zod": "^3.23.8"
74
  },
75
  "devDependencies": {
76
+ "@eslint/js": "^9.9.0",
77
+ "@tailwindcss/typography": "^0.5.15",
78
+ "@types/node": "^22.5.5",
79
+ "@types/react": "^18.3.3",
80
+ "@types/react-dom": "^18.3.0",
81
+ "@vitejs/plugin-react-swc": "^3.5.0",
82
+ "autoprefixer": "^10.4.20",
83
+ "eslint": "^9.9.0",
84
+ "eslint-plugin-react-hooks": "^5.1.0-rc.0",
85
+ "eslint-plugin-react-refresh": "^0.4.9",
86
+ "globals": "^15.9.0",
87
+ "lovable-tagger": "^1.1.7",
88
+ "postcss": "^8.4.47",
89
+ "tailwindcss": "^3.4.11",
90
+ "typescript": "^5.5.3",
91
+ "typescript-eslint": "^8.0.1",
92
+ "vite": "^5.4.1"
93
  }
94
  }
viewer/postcss.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
viewer/public/favicon.ico ADDED
viewer/public/placeholder.svg ADDED
viewer/public/urdf/T12/meshes/Ankle1.STL ADDED
Binary file (37.5 kB). View file
 
viewer/public/urdf/T12/meshes/Ankle2.STL ADDED
Binary file (37.5 kB). View file
 
viewer/public/urdf/T12/meshes/Ankle3.STL ADDED
Binary file (37.5 kB). View file
 
viewer/public/urdf/T12/meshes/Ankle4.STL ADDED
Binary file (37.5 kB). View file
 
viewer/public/urdf/T12/meshes/Ankle5.STL ADDED
Binary file (37.5 kB). View file
 
viewer/public/urdf/T12/meshes/Ankle6.STL ADDED
Binary file (37.5 kB). View file
 
viewer/public/urdf/T12/meshes/Body.STL ADDED
Binary file (30.3 kB). View file
 
viewer/public/urdf/T12/meshes/Foot1.STL ADDED
Binary file (41.7 kB). View file
 
viewer/public/urdf/T12/meshes/Foot2.STL ADDED
Binary file (41.7 kB). View file
 
viewer/public/urdf/T12/meshes/Foot3.STL ADDED
Binary file (41.7 kB). View file
 
viewer/public/urdf/T12/meshes/Foot4.STL ADDED
Binary file (41.7 kB). View file
 
viewer/public/urdf/T12/meshes/Foot5.STL ADDED
Binary file (41.7 kB). View file
 
viewer/public/urdf/T12/meshes/Foot6.STL ADDED
Binary file (41.7 kB). View file
 
viewer/public/urdf/T12/meshes/Hip1.STL ADDED
Binary file (44.4 kB). View file
 
viewer/public/urdf/T12/meshes/Hip2.STL ADDED
Binary file (44.4 kB). View file
 
viewer/public/urdf/T12/meshes/Hip3.STL ADDED
Binary file (44.4 kB). View file
 
viewer/public/urdf/T12/meshes/Hip4.STL ADDED
Binary file (44.4 kB). View file
 
viewer/public/urdf/T12/meshes/Hip5.STL ADDED
Binary file (44.4 kB). View file
 
viewer/public/urdf/T12/meshes/Hip6.STL ADDED
Binary file (44.4 kB). View file
 
viewer/public/urdf/T12/meshes/Knee1.STL ADDED
Binary file (18.5 kB). View file
 
viewer/public/urdf/T12/meshes/Knee2.STL ADDED
Binary file (18.5 kB). View file
 
viewer/public/urdf/T12/meshes/Knee3.STL ADDED
Binary file (18.5 kB). View file
 
viewer/public/urdf/T12/meshes/Knee4.STL ADDED
Binary file (18.5 kB). View file
 
viewer/public/urdf/T12/meshes/Knee5.STL ADDED
Binary file (18.5 kB). View file
 
viewer/public/urdf/T12/meshes/Knee6.STL ADDED
Binary file (18.5 kB). View file
 
viewer/public/urdf/T12/meshes/Shin1.STL ADDED
Binary file (27.3 kB). View file
 
viewer/public/urdf/T12/meshes/Shin2.STL ADDED
Binary file (27.3 kB). View file
 
viewer/public/urdf/T12/meshes/Shin3.STL ADDED
Binary file (27.3 kB). View file
 
viewer/public/urdf/T12/meshes/Shin4.STL ADDED
Binary file (27.3 kB). View file
 
viewer/public/urdf/T12/meshes/Shin5.STL ADDED
Binary file (27.3 kB). View file
 
viewer/public/urdf/T12/meshes/Shin6.STL ADDED
Binary file (27.3 kB). View file
 
viewer/public/urdf/T12/meshes/Thigh1.STL ADDED
Binary file (37.6 kB). View file
 
viewer/public/urdf/T12/meshes/Thigh2.STL ADDED
Binary file (37.6 kB). View file
 
viewer/public/urdf/T12/meshes/Thigh3.STL ADDED
Binary file (37.6 kB). View file
 
viewer/public/urdf/T12/meshes/Thigh4.STL ADDED
Binary file (37.6 kB). View file
 
viewer/public/urdf/T12/meshes/Thigh5.STL ADDED
Binary file (37.6 kB). View file
 
viewer/public/urdf/T12/meshes/Thigh6.STL ADDED
Binary file (37.6 kB). View file
 
viewer/public/urdf/T12/robot-data.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "T12 Robot",
3
+ "description": "This is the T12 robot developed by the NASA Jet Propulsion Laboratory. It's a 6-legged robot with articulated joints and components.",
4
+ "mass": 705.33,
5
+ "dofs": 16,
6
+ "joints": {
7
+ "revolute": 16,
8
+ "prismatic": 0,
9
+ "continuous": 0,
10
+ "fixed": 0,
11
+ "other": 0
12
+ },
13
+ "links": [
14
+ { "name": "body", "mass": 266.06 },
15
+ { "name": "hip1", "mass": 10.16 },
16
+ { "name": "thigh1", "mass": 14.24 },
17
+ { "name": "knee1", "mass": 5.79 },
18
+ { "name": "shin1", "mass": 10.2 },
19
+ { "name": "ankle1", "mass": 5.11 },
20
+ { "name": "foot1", "mass": 27.42 },
21
+ { "name": "hip2", "mass": 10.16 },
22
+ { "name": "thigh2", "mass": 14.24 },
23
+ { "name": "knee2", "mass": 5.79 },
24
+ { "name": "shin2", "mass": 10.2 },
25
+ { "name": "ankle2", "mass": 5.11 },
26
+ { "name": "foot2", "mass": 27.42 },
27
+ { "name": "hip3", "mass": 10.16 },
28
+ { "name": "thigh3", "mass": 14.24 },
29
+ { "name": "knee3", "mass": 5.79 },
30
+ { "name": "shin3", "mass": 10.2 },
31
+ { "name": "ankle3", "mass": 5.11 },
32
+ { "name": "foot3", "mass": 27.42 },
33
+ { "name": "hip4", "mass": 10.16 },
34
+ { "name": "thigh4", "mass": 14.24 },
35
+ { "name": "knee4", "mass": 5.79 },
36
+ { "name": "shin4", "mass": 10.2 },
37
+ { "name": "ankle4", "mass": 5.11 },
38
+ { "name": "foot4", "mass": 27.42 },
39
+ { "name": "hip5", "mass": 10.16 },
40
+ { "name": "thigh5", "mass": 14.24 },
41
+ { "name": "knee5", "mass": 5.79 },
42
+ { "name": "shin5", "mass": 10.2 },
43
+ { "name": "ankle5", "mass": 5.11 },
44
+ { "name": "foot5", "mass": 27.42 },
45
+ { "name": "hip6", "mass": 10.16 },
46
+ { "name": "thigh6", "mass": 14.24 },
47
+ { "name": "knee6", "mass": 5.79 },
48
+ { "name": "shin6", "mass": 10.2 },
49
+ { "name": "ankle6", "mass": 5.11 },
50
+ { "name": "foot6", "mass": 27.42 }
51
+ ],
52
+ "materials": [
53
+ { "name": "Aluminum", "percentage": 60 },
54
+ { "name": "Carbon Fiber", "percentage": 25 },
55
+ { "name": "Steel", "percentage": 15 }
56
+ ]
57
+ }