Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pre-Summer Update #974

Merged
merged 239 commits into from
May 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
239 commits
Select commit Hold shift + click to select a range
4db48f8
Merge branch 'master' of https://github.com/Autodesk/synthesis into dev
BrandonPacewic Jul 3, 2023
a50d97a
Merge branch 'dev' of https://github.com/Autodesk/synthesis into dev
BrandonPacewic Jul 5, 2023
0522a80
Initial commit
BrandonPacewic Jul 5, 2023
ac79136
Tracking `.dll`s
BrandonPacewic Jul 5, 2023
b62a052
Builds
BrandonPacewic Jul 5, 2023
aef2e30
Seems to work
BrandonPacewic Jul 6, 2023
b267415
Removed `.exe` meta
BrandonPacewic Jul 6, 2023
024a3a6
Moved plane in front of camera & fixed material mapping
BrandonPacewic Jul 6, 2023
54b4414
Binary cleanup
BrandonPacewic Jul 6, 2023
c0a1817
Binary cleanup 2.0
BrandonPacewic Jul 6, 2023
0a81bf5
Binary cleanup 3.0
BrandonPacewic Jul 6, 2023
9559928
Fix scaling
BrandonPacewic Jul 6, 2023
4ce4e4b
Loaded custom `html`
BrandonPacewic Jul 6, 2023
11dbfb0
Reordered file structure
BrandonPacewic Jul 6, 2023
712a507
Save before refactoring
BrandonPacewic Jul 10, 2023
9a6a077
Cleanup cef setup
BrandonPacewic Jul 15, 2023
ad65657
Final cleanups
BrandonPacewic Jul 15, 2023
08529e5
Install CEF binary cmake setup
BrandonPacewic Jul 16, 2023
1bc8cdf
Working mac client build
BrandonPacewic Jul 17, 2023
ee03a1a
Sucessfully builds but does not correctly link cef
BrandonPacewic Jul 18, 2023
d6c4513
Not really working
BrandonPacewic Jul 19, 2023
1caf3b5
Broken linking
BrandonPacewic Jul 19, 2023
273703e
Updated two stage build process
BrandonPacewic Jul 20, 2023
8ef8e40
Mac dynamic linking still broken
BrandonPacewic Jul 20, 2023
14f3dd2
Progress for mac arm
BrandonPacewic Jul 20, 2023
1bb9112
Working on windows build
BrandonPacewic Jul 20, 2023
b93d805
Untested windows build script
BrandonPacewic Jul 20, 2023
fa0725a
Updated windows main
BrandonPacewic Jul 20, 2023
09aa24e
started react ui with panel, label, button
PepperLola Jul 21, 2023
f2e307e
Finally a working mac executable
BrandonPacewic Jul 21, 2023
ee80731
started slider component
PepperLola Jul 21, 2023
224be2c
Finished all windows `todo`s
BrandonPacewic Jul 21, 2023
6746cec
Windows cmake syntax error
BrandonPacewic Jul 21, 2023
1dd2b9e
Windows cleanups
BrandonPacewic Jul 21, 2023
f169a5f
Added windows resource files
BrandonPacewic Jul 21, 2023
f0c8a62
More windows cleanups
BrandonPacewic Jul 21, 2023
5ac6ce1
Cmake resource copying bug
BrandonPacewic Jul 21, 2023
e9ff673
improve slider with label and value, button click animation, panel ce…
PepperLola Jul 21, 2023
1ff3ba2
created checkbox, dropdown, stack
PepperLola Jul 21, 2023
5f39fa9
Merge remote-tracking branch 'origin/feature/1563/cef-integration' in…
PepperLola Jul 21, 2023
e300ad1
set cef location to local react server
PepperLola Jul 21, 2023
4fe827c
installed prettier formatter
PepperLola Jul 21, 2023
a7cb3f9
basic modal context
PepperLola Jul 22, 2023
ba8d336
created main hud, modal state management works well enough
PepperLola Jul 22, 2023
cb1af9f
added autodesk logo to main hud
PepperLola Jul 22, 2023
d06039a
gradient to bg of main hud
PepperLola Jul 22, 2023
7e42b4c
added panels manager but modals don't close panels yet
PepperLola Jul 23, 2023
c949301
opening modal closes all panels
PepperLola Jul 23, 2023
a8d54d6
Merge remote-tracking branch 'origin/dev' into feature/1589/react-ui
PepperLola Jul 23, 2023
f05c0c0
fixed build errors, added prettier config
PepperLola Jul 24, 2023
94a81e0
added icons instead of placeholder images
PepperLola Jul 24, 2023
8492549
added framer motion for opening and closing main hud
PepperLola Jul 24, 2023
8484a67
build as single file so no cors error
PepperLola Jul 24, 2023
36bc050
allow eslint warnings, add eslint+prettier format validating action
PepperLola Jul 24, 2023
4e5728c
cd react in action
PepperLola Jul 24, 2023
f39c4cf
guess we need to cd twice
PepperLola Jul 24, 2023
da8ce11
added more modals, disable react-refresh warning
PepperLola Jul 25, 2023
d0b72c9
allow panels to close
PepperLola Jul 25, 2023
70578e1
formatter
PepperLola Jul 25, 2023
44fba4e
fix title wrapping
PepperLola Jul 25, 2023
a3c937e
fix multibot panel
PepperLola Jul 25, 2023
feea9b5
added toast system
PepperLola Jul 25, 2023
f37de83
bad draft of theme editor
PepperLola Jul 25, 2023
42de566
fixed multibot panel, added radio button that doesn't work
PepperLola Jul 25, 2023
79f1e25
Merge remote-tracking branch 'origin/dev' into feature/1589/react-ui
PepperLola Jul 26, 2023
4eb14fc
improved theme manager and added ability to create/edit new themes
PepperLola Aug 2, 2023
4b51505
yarn format
PepperLola Aug 5, 2023
fb378c6
added a couple modals
PepperLola Aug 15, 2023
e3cca73
formatter
PepperLola Aug 15, 2023
bb672d4
added some modals and changed organization to match c#
PepperLola Aug 16, 2023
15ee32f
added a bunch of modals and the Input, ScrollView and Container compo…
PepperLola Aug 16, 2023
9fa4549
format, remove default modal, fix controls panel title wrapping
PepperLola Aug 16, 2023
936c90f
started on theme manager
PepperLola Aug 19, 2023
696d776
finished theme provider with updating colors
PepperLola Aug 19, 2023
7b9dac6
new theme, delete theme, delete all theme modals open, formatted
PepperLola Aug 19, 2023
58b5caa
theme editor preview button, current theme now always shows as select…
PepperLola Aug 19, 2023
48acc76
finished adding modals
PepperLola Aug 21, 2023
0d17a48
added robot placement and scoreboard panels
PepperLola Aug 21, 2023
c859dd6
added more panels
PepperLola Aug 22, 2023
cd89790
Merge remote-tracking branch 'origin/dev' into feature/1589/react-ui
PepperLola Aug 22, 2023
b09d362
added tooltips, made main hud start off screen, added path aliases
PepperLola Aug 22, 2023
b5ca662
added all tooltip calls
PepperLola Aug 22, 2023
a65278e
formatter
PepperLola Aug 22, 2023
f30bec6
added toast colors and util file
PepperLola Aug 22, 2023
424c54a
dumb algorithm for background color in case i can't figure out transp…
PepperLola Aug 22, 2023
4f79100
fixed background color when in prod
PepperLola Aug 23, 2023
1e452b5
made dom functions available for cef
PepperLola Aug 23, 2023
fb1138e
added mouse position function and readability warning in theme editor
PepperLola Aug 23, 2023
8bba32c
improved theme editor ui
PepperLola Aug 23, 2023
2dc8085
fixed theme editor cancel button
PepperLola Aug 23, 2023
07eda5c
First web commit
HunterBarclay Dec 9, 2023
824cdff
Updated READMEs and gitignores
HunterBarclay Dec 10, 2023
dce6450
Integrating and testing Jolt Physics
HunterBarclay Dec 19, 2023
7331c3d
Cube is bouncing like a ball
HunterBarclay Dec 26, 2023
6ebd416
Beginning stage one. Starting to use smart pointers and memory views
HunterBarclay Dec 31, 2023
239a186
Working on assembly handling
HunterBarclay Jan 4, 2024
b38a7cf
Merge branch 'dev' into fission
HunterBarclay Jan 6, 2024
c3b7981
Adding typescript
HunterBarclay Jan 6, 2024
3f9dd63
Box falls and bounces on the ground. ThreeJS is causing problems with…
HunterBarclay Jan 8, 2024
ed39061
Working on managing WASM-based dependencies
HunterBarclay Jan 15, 2024
66d7e76
Initial code for the spike is in place
HunterBarclay Jan 15, 2024
43b86b2
`node_modules` import error
BrandonPacewic Jan 18, 2024
9702cb3
:/
BrandonPacewic Jan 19, 2024
e118a6a
Trying to resolve multibody issues
HunterBarclay Jan 19, 2024
9ac337a
Experiments with ThreeJS and Mirabuf Protobuf. Stress testing in Rapi…
HunterBarclay Jan 26, 2024
155c8ed
Re-enabled rendering for demonstration
HunterBarclay Jan 26, 2024
db0fefb
Working for realsies
BrandonPacewic Jan 29, 2024
c3a2dd1
Weird problems with boxes spawning weird
BrandonPacewic Jan 29, 2024
dedbf2c
Stress test
BrandonPacewic Feb 5, 2024
ec6608a
Added stats
BrandonPacewic Feb 16, 2024
87d7ee5
Constraint troubleshooting
BrandonPacewic Feb 16, 2024
d04bb3c
Removed weird package and made scene prettier
HunterBarclay Feb 16, 2024
4f08e59
Working with 2 hinge constraints. Mass differences are being handled …
HunterBarclay Feb 16, 2024
97f03d3
Switched to fixed time step
HunterBarclay Feb 17, 2024
c1658a7
Finishing up things
BrandonPacewic Feb 18, 2024
df2f9a7
ThreeJS and Physics Manager (#955)
HunterBarclay Feb 21, 2024
9ce10b5
Merge branch 'fission' into branp/jolt
HunterBarclay Feb 21, 2024
d29e2c0
Jolt Physics JS (#956)
HunterBarclay Feb 21, 2024
cf05ff2
Removing unused WASM projects
HunterBarclay Feb 27, 2024
062f11d
Completed integration of new npm package for Jolt and added placehold…
HunterBarclay Feb 29, 2024
4619fab
Working on initial ECS
HunterBarclay Feb 29, 2024
6a9a109
Setup unit tests
HunterBarclay Mar 1, 2024
edd3561
Saving progress on Physics System before migrating to vite
HunterBarclay Mar 4, 2024
3307709
Significantly moved project structure and migrated to vite for better…
HunterBarclay Mar 4, 2024
3936cd6
Updating style and adding unit tests
HunterBarclay Mar 5, 2024
77fe4da
Added random generator and replaced usage of default one in JoltExample
HunterBarclay Mar 5, 2024
baab969
Vite Migration and Project Restructure (#959)
HunterBarclay Mar 5, 2024
22a57e3
Removed web directory and old submodules
HunterBarclay Mar 6, 2024
32c8149
preliminary mirabuf file import
PepperLola Mar 8, 2024
cf014a1
Working on Convex hull shape support
HunterBarclay Mar 8, 2024
4c51f2b
Added convex hull shape building
HunterBarclay Mar 10, 2024
fbeecf1
Fixed shadows in Jolt example and converted Fusion coordinates to our…
HunterBarclay Mar 10, 2024
afd0244
Added body creation
HunterBarclay Mar 11, 2024
fa3bc8a
Adding mirabuf node parsing
HunterBarclay Mar 12, 2024
96cee19
Added mirabuf loading tests, started reworking the node algorithm
HunterBarclay Mar 12, 2024
5e19760
satisfy linter
PepperLola Mar 13, 2024
117f8ef
Preliminary rigid node generation done. Need either AB testing for fu…
HunterBarclay Mar 13, 2024
adda2f9
mirabuf loading progress but transforms are bad
PepperLola Mar 13, 2024
f06d8e2
Rigidgroups still need work
HunterBarclay Mar 13, 2024
c009edf
Added dozer and fixed function change
HunterBarclay Mar 13, 2024
d04e452
not sure what's wrong with rotations and positions
PepperLola Mar 13, 2024
40815b3
Merge branch 'jwrigh/mirabuf-import' of github.com:Autodesk/synthesis…
PepperLola Mar 13, 2024
93584f0
Transposed extracted rotation. Dozers left eye is still missing however
HunterBarclay Mar 13, 2024
ab85d41
Moved julians mirabuf files, updated paths, fixed issue with grounded…
HunterBarclay Mar 13, 2024
66b6e4c
Testing materials plus making meshes by instances
HunterBarclay Mar 14, 2024
7dc8e67
Still working out the matrix conversion issue
HunterBarclay Mar 14, 2024
1f4af07
Fixed JoltExamp temporarily
HunterBarclay Mar 14, 2024
286708f
Matrix conversion work
HunterBarclay Mar 14, 2024
c112a44
moved some functions out of JoltExample
PepperLola Mar 14, 2024
34d2d22
moved transform stuff out of JoltExample and added mira path url param
PepperLola Mar 14, 2024
8dfabc2
Finishing physics before merging into Julians stuff
HunterBarclay Mar 14, 2024
cbbd389
Barclah/physics/jointing (#960)
HunterBarclay Mar 14, 2024
dc1e21b
Merge branch 'fission' into jwrigh/mirabuf-import
HunterBarclay Mar 14, 2024
78d26c7
Dev Update Fission (#964)
HunterBarclay Mar 14, 2024
6b65f37
Merge branch 'fission' into jwrigh/mirabuf-import
HunterBarclay Mar 14, 2024
b03dae4
Bringing Fission into the fold (#965)
HunterBarclay Mar 14, 2024
4820ec4
Updated to JoltPhysics 0.19.0
HunterBarclay Mar 14, 2024
c331017
Jolt to ThreeJS conversions tested
HunterBarclay Mar 14, 2024
bba0027
Working on SceneRenderer and first SceneObjects
HunterBarclay Mar 15, 2024
a543aa6
Started on some ideas for the core systems. Moved everything to be mo…
HunterBarclay Mar 15, 2024
02c7c28
Merge branch 'jwrigh/mirabuf-import' into feature/1589/react-ui
PepperLola Mar 15, 2024
54c8e46
moved ui over to fission project
PepperLola Mar 15, 2024
99a1686
Tidying
HunterBarclay Mar 15, 2024
7dfe4e8
Fixed stats and mainhud
HunterBarclay Mar 15, 2024
fd18b1e
Added robot modal works, removed cef
HunterBarclay Mar 16, 2024
18a406d
Working on new modal for managing assemblies in the scnee
HunterBarclay Mar 16, 2024
02e3684
Fixing use of Math.random
HunterBarclay Mar 16, 2024
d1c1f12
Fixed format checker
HunterBarclay Mar 16, 2024
ef20dbe
Updated ignore pattern
HunterBarclay Mar 16, 2024
e8a422a
Fixing errors and warning
HunterBarclay Mar 16, 2024
7d2933f
Remove max warnings and fixed any explicit
HunterBarclay Mar 16, 2024
403a157
No longer fails on prettier
HunterBarclay Mar 16, 2024
d15239d
Mirabuf Parser and Initial React UI (#966)
HunterBarclay Mar 16, 2024
cd54f46
Adding world and physics
HunterBarclay Mar 17, 2024
e80aaa7
Still moving things over
HunterBarclay Mar 17, 2024
c34af71
Fixed issue where bodies have blank triangle mesh
HunterBarclay Mar 17, 2024
a18b1c1
Formatted
HunterBarclay Mar 17, 2024
b63aab5
Bodies Bug (#967)
HunterBarclay Mar 17, 2024
81d36c3
Working on mass
HunterBarclay Mar 17, 2024
300172b
Bug fixing
HunterBarclay Mar 17, 2024
41a4c2e
Added wireframe meshes for colliders to help debugging. Fixed rigid n…
HunterBarclay Mar 17, 2024
6ac2916
Finally solved the problem
HunterBarclay Mar 18, 2024
d2a5411
Collision works well
HunterBarclay Mar 18, 2024
08cbb59
Compound Colliders comprising of Convex hulls are working decently well.
HunterBarclay Mar 19, 2024
40e42f1
Adding a couple tests
HunterBarclay Mar 19, 2024
1b0cf08
Created unit testing workflow
HunterBarclay Mar 19, 2024
98609af
Renamed format workflow
HunterBarclay Mar 19, 2024
7ab168e
Fixed build errors and added build workflow
HunterBarclay Mar 19, 2024
eff6528
Typo
HunterBarclay Mar 19, 2024
e8cdb20
Updated path
HunterBarclay Mar 19, 2024
39de2f5
Path fix again
HunterBarclay Mar 19, 2024
08241ce
Fixed another path
HunterBarclay Mar 19, 2024
66faf3b
Fixing date grabbing
HunterBarclay Mar 19, 2024
50a77af
Syntax error
HunterBarclay Mar 19, 2024
824a3a5
Removing the workflow to be triggered on prs
HunterBarclay Mar 19, 2024
e2e2bd4
Fixing syntax issue
HunterBarclay Mar 19, 2024
f733dcd
Reverting to previous fix
HunterBarclay Mar 19, 2024
6e95d65
Added support for non brep meshes
HunterBarclay Mar 19, 2024
5105971
Formatted
HunterBarclay Mar 19, 2024
0b82b9d
Starting revolute jointing
HunterBarclay Mar 19, 2024
610f890
World System and Basic Physics (#968)
HunterBarclay Mar 20, 2024
257f886
No testing but added revolute joints
HunterBarclay Mar 20, 2024
758afbd
Merge branch 'dev' into barclah/mesh-exporter
HunterBarclay Mar 20, 2024
2b95e4d
Added commented out JSON serialization for mirabuf files into the exp…
HunterBarclay Mar 20, 2024
b6fb222
Merge branch 'dev' into barclah/jointing
HunterBarclay Mar 20, 2024
a846957
Revolute joints actually worked first try. Slider joints are sliding …
HunterBarclay Mar 20, 2024
949e40d
Hinge and Slider constraints have working limits
HunterBarclay Mar 20, 2024
261c82d
Jointing done. No motor control tested
HunterBarclay Mar 21, 2024
a4f9195
Non-BRep Mesh Support (#969)
HunterBarclay Mar 21, 2024
e4e1e00
Basic Passive Constraints (#970)
HunterBarclay Mar 23, 2024
68432fd
Added mechanisms
HunterBarclay Mar 23, 2024
1dcd858
Adding a ton of files
HunterBarclay Mar 27, 2024
a38c515
Working hinge driving
HunterBarclay Mar 29, 2024
aa80f74
Experimenting with wheels
HunterBarclay Mar 31, 2024
368d7df
Well its not throwing an error, but it isn't working either
HunterBarclay Apr 2, 2024
223e107
Wheels are existing?
HunterBarclay Apr 6, 2024
f67426e
Wheels still aren't colliding
HunterBarclay Apr 6, 2024
f1d1cee
Love finding all the little issues with physics engines
HunterBarclay Apr 6, 2024
e028245
Little tweaks
HunterBarclay Apr 7, 2024
26cb1af
Better I think?
HunterBarclay Apr 9, 2024
200b551
Starting to flush out drivers and stimuli
HunterBarclay Apr 10, 2024
edf1e87
Wheels are too big
HunterBarclay Apr 12, 2024
1a37419
Joint graph construction for determining wheels
HunterBarclay Apr 14, 2024
51981b4
I think wheel radi are working correctly now
HunterBarclay Apr 14, 2024
6462ea9
Adding getters and setters. Hinge velocity is disabled for right now …
HunterBarclay Apr 15, 2024
d2fb547
Cleanups
HunterBarclay Apr 15, 2024
22d7122
Docs
HunterBarclay Apr 15, 2024
2601ecd
Simulation System (Initial) (#971)
HunterBarclay Apr 17, 2024
d9fa003
Tweaking styling, adding Artifakt font
HunterBarclay May 23, 2024
a9c18f9
Tweaking a bit more styling, redid how the robots and fields are listed
HunterBarclay May 23, 2024
d69a11f
Changing up some colors
HunterBarclay May 23, 2024
f2b4714
Moving around the modals, building them out a bit more
HunterBarclay May 27, 2024
3c4b86e
Finally properly sized up adsk logo
HunterBarclay May 27, 2024
36d2dc7
Assembly deletion done
HunterBarclay May 29, 2024
e075988
Janky updating
HunterBarclay May 29, 2024
0a18d67
Hunter - UI Tweaking (1) (#972)
HunterBarclay May 29, 2024
1393ec7
Renamed workflows
HunterBarclay May 29, 2024
1420d35
Made packaging happen every dev push
HunterBarclay May 29, 2024
c00b91f
Workflow Rename (#973)
HunterBarclay May 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/workflows/FissionESLintFormat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Fission - ES Lint Format

on:
workflow_dispatch: {}
push:
branches: [ master, dev ]
pull_request:
branches: [ master, dev ]

jobs:
runFormatValidationScript:
name: ESLint Format Validation
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: JavaScript Setup
uses: actions/setup-node@v2
with:
node-version: 20
- name: Install Dependencies
run: |
cd fission
npm install
- name: Linter
id: linter-validation
run: |
cd fission
npm run lint
continue-on-error: true
- name: Prettier
id: prettier-validation
run: |
cd fission
npm run prettier
continue-on-error: true
- name: Check Success
run: |
if [ ${{ steps.linter-validation.outcome }} == "success" ]; then
echo "Format Validation Passed"
else
echo "Format Validation Failed"
exit 1
fi
47 changes: 47 additions & 0 deletions .github/workflows/FissionPackage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Fission - Package

on:
workflow_dispatch: {}
push:
branches: [ master, dev ]

jobs:
runUnitTests:
name: Package
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: JavaScript Setup
uses: actions/setup-node@v2
with:
node-version: 20

- name: Get date
id: date # this is used on variable path
run: |
echo "timestamp=$(date +'%Y-%m-%dT%H-%M-%S')" >> $GITHUB_OUTPUT

- name: Install Dependencies
run: |
cd fission
npm install

- name: Get package info
id: info
uses: codex-team/[email protected]
with:
path: fission/

- name: Build
id: build
run: |
cd fission
npm run build

- name: Upload Artifact
uses: actions/upload-artifact@v4
id: upload-artifact
with:
name: "${{ steps.info.outputs.name }}@${{ steps.info.outputs.version }}[${{ steps.date.outputs.timestamp }}]"
path: fission/dist/
38 changes: 38 additions & 0 deletions .github/workflows/FissionUnitTest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Fission - Unit Test

on:
workflow_dispatch: {}
push:
branches: [ master, dev ]
pull_request:
branches: [ master, dev ]

jobs:
runUnitTests:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: JavaScript Setup
uses: actions/setup-node@v2
with:
node-version: 20
- name: Install Dependencies
run: |
cd fission
npm install
- name: Unit Tests
id: unit-tests
run: |
cd fission
npm run test
continue-on-error: true
- name: Check Success
run: |
if [ ${{ steps.unit-tests.outcome }} == "success" ]; then
echo "Format Validation Passed"
else
echo "Format Validation Failed"
exit 1
fi
8 changes: 8 additions & 0 deletions engine/Assets/Scripts/CEF.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions engine/Assets/Scripts/Importer/MirabufDefinitionHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ public static void MakePartDefinition(GameObject container, PartDefinition defin
AssemblyData assemblyData, ColliderGenType colliderGenType, bool useIndex, int partIndex) {
PhysicMaterial physMat = new PhysicMaterial { dynamicFriction = 0.6f, staticFriction = 0.6f };
foreach (var body in definition.Bodies) {
if (body.TriangleMesh == null)
continue;

var bodyObject = new GameObject(useIndex ? $"{body.Info.Name}_{partIndex}" : body.Info.Name);
var filter = bodyObject.AddComponent<MeshFilter>();
var renderer = bodyObject.AddComponent<MeshRenderer>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,18 @@ def _MapAllComponents(
else:
partDefinition.dynamic = True

for body in component.bRepBodies:
def processBody(body: adsk.fusion.BRepBody | adsk.fusion.MeshBody):
if progressDialog.wasCancelled():
raise RuntimeError("User canceled export")
if body.isLightBulbOn:
part_body = partDefinition.bodies.add()
fill_info(part_body, body)
part_body.part = comp_ref
_ParseBRep(body, options, part_body.triangle_mesh)

if isinstance(body, adsk.fusion.BRepBody):
_ParseBRep(body, options, part_body.triangle_mesh)
else:
_ParseMesh(body, options, part_body.triangle_mesh)

appearance_key = "{}_{}".format(body.appearance.name, body.appearance.id)
# this should be appearance
Expand All @@ -59,6 +63,12 @@ def _MapAllComponents(
else:
part_body.appearance_override = "default"

for body in component.bRepBodies:
processBody(body)

for body in component.meshBodies:
processBody(body)


@TimeThis
def _ParseComponentRoot(
Expand Down Expand Up @@ -199,6 +209,29 @@ def _ParseBRep(
)


def _ParseMesh(
meshBody: adsk.fusion.MeshBody,
options: ParseOptions,
trimesh: assembly_pb2.TriangleMesh,
) -> any:
try:
mesh = meshBody.displayMesh

fill_info(trimesh, meshBody)
trimesh.has_volume = True

plainmesh_out = trimesh.mesh

plainmesh_out.verts.extend(mesh.nodeCoordinatesAsFloat)
plainmesh_out.normals.extend(mesh.normalVectorsAsFloat)
plainmesh_out.indices.extend(mesh.nodeIndices)
plainmesh_out.uv.extend(mesh.textureCoordinatesAsFloat)
except:
logging.getLogger("{INTERNAL_ID}.Parser.BrepBody").error(
"Failed:\n{}".format(traceback.format_exc())
)


def _MapRigidGroups(
rootComponent: adsk.fusion.Component, joints: joint_pb2.Joints
) -> None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,12 @@ def export(self) -> bool:
path = pathlib.Path(self.parseOptions.fileLocation).parent
path.mkdir(parents=True, exist_ok=True)

### Print out assembly as JSON
# miraJson = MessageToJson(assembly_out)
# miraJsonFile = open(f'', 'wb')
# miraJsonFile.write(str.encode(miraJson))
# miraJsonFile.close()

if self.parseOptions.compress:
self.logger.debug("Compressing file")
with gzip.open(self.parseOptions.fileLocation, "wb", 9) as f:
Expand Down
27 changes: 27 additions & 0 deletions fission/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
module.exports = {
root: true,
env: { browser: true, es2020: true },
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
],
ignorePatterns: ['dist', '.eslintrc.cjs', 'src/proto/mirabuf.*', 'src/samples/*'],
parser: '@typescript-eslint/parser',
plugins: ['react-refresh'],
rules: {
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
'@typescript-eslint/no-unused-vars': [
'warn', // or "error"
{
'argsIgnorePattern': '^_',
'varsIgnorePattern': '^_',
'caughtErrorsIgnorePattern': '^_'
}
]
},

}
24 changes: 24 additions & 0 deletions fission/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
65 changes: 65 additions & 0 deletions fission/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Fission: Synthesis' web-based robot simulator

## Gettings Started
### Requirements
1. NPM (v10.2.4 recommended)
2. NodeJS (v20.10.0 recommended)
3. TypeScript (v4.8.4 recommended) *Unknown if this is actually required*

### Building
To build, install all dependencies:
```bash
npm i
```
### NPM Scripts

| Script | Description |
| ------ | ----------- |
| `dev` | Starts the development server used for testing. Supports hotloading (though finicky with WASM module loading). |
| `test` | Runs the unit tests via vitest. |
| `build` | Builds the project into it's packaged form. Uses root base path. |
| `build:prod` | Builds the project into it's packaged form. Uses the `/fission/` base path. |
| `preview` | Runs the built project for preview locally before deploying. |
| `lint` | Runs eslint on the project. |
| `lint:fix` | Attempts to fix issues found with eslint. |
| `prettier` | Runs prettier on the project as a check. |
| `prettier:fix` | Runs prettier on the project to fix any issues with formating. **DO NOT USE**, I don't like the current format it uses. |
| `format` | Runs `prettier:fix` and `lint:fix`. **Do not use** for the same reasons as `prettier:fix`. |

## Core Systems
These core systems make up the bulk of the vital technologies to make Synthesis work. The idea is that these systems will serve as a
jumping off point for anything requiring real-time simulation.

### World
The world serves as a hub for all of the core systems. It is a static class that handles system update execution order and lifetime.

### Scene Renderer
The Scene Renderer is our interface with rendering within the Canvas. This is primarily done via ThreeJS, however can be extended later on.

### Physics System
This Physics System is our interface with Jolt, ensuring objects are properly handled and provides utility functions that are more custom fit to our purposes.

[Jolt Physics Architecture](https://jrouwe.github.io/JoltPhysics/)

### Input System

### UI System

## Additional Systems
These systems will extend off of the core systems to build out features in Synthesis.

### Simulation System
The Simulation System articulates dynamic elements of the scene via the Physics System. At it's core there are 3 main components:

#### Driver
Drivers are mostly write-only. They take in values to know how to articulate the physics objects and contraints.

#### Stimulus
Stimulu are mostly read-only. They read values from given physics objects and constraints.

#### Brain
Brains are the controllers of the mechanisms. They use a combination of Drivers and Stimuli to control a given mechanism.

For basic user control of the mechanisms, we'll have a Synthesis Brain. By the end of Summer 2024, I hope to have an additional brain, the WPIBrain for facilitating WPILib code control over the mechanisms inside of Synthesis.

### Mode System
Binary file added fission/bun.lockb
Binary file not shown.
15 changes: 15 additions & 0 deletions fission/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/synthesis-logo.svg" />
<link rel='stylesheet' href='https://static-dc.autodesk.net/etc/designs/v201808022224/templates-general/structure/fonts/artifakt/clientlibs/artifakt.css'/>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Fission | Synthesis</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading
Loading