Skip to content

Exporter UI Refactor [AARD-1883] #1194

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

Merged
merged 41 commits into from
Jul 25, 2025
Merged

Exporter UI Refactor [AARD-1883] #1194

merged 41 commits into from
Jul 25, 2025

Conversation

rutmanz
Copy link
Member

@rutmanz rutmanz commented Jul 3, 2025

Task

AARD-1883

Uses Fusion's palette system to make the UI for the exporter a React webpage. Goal is to make the UI cleaner, easier to build on, and not such a pain to update.

Symptom

When you click the exporter button in fusion, you previously saw the old UI. The old UI was difficult to update and very inflexible in its layout.

Solution

  • Old ConfigureCommand GUI replaced with a palette, which has all of the same inputs re-implemented using MUI and React
  • Uses the Fusion-Web communication protocol to transfer data at key moments
    • When selecting joints and game pieces (Web UI prompts Fusion to allow the user to select an appropriate item in the scene, Fusion returns the selected items)
    • When first opening the panel (Fusion sends calculated robot weight)
    • When exporting (Web UI sends configuration to Fusion and initiates the export process)

Photos

image

Limitations

  • Uses Fusion's internal units (rad/s, cm/s, kg, N) instead of user's unit preferences
    • This isn't a technical limitation, could update to account for that if we think it's important

Verification

  • Confirmed that ExporterOptions objects were the same with both the old configuration UI and the new web UI
  • Confirmed that saving and loading of config in the document metadata worked
  • Confirmed that joint selector and gamepiece selectors allow you to select joints and gamepieces
  • Confirmed that models can be imported

Before merging, ensure the following criteria are met:

  • All acceptance criteria outlined in the ticket are met.
  • Necessary test cases have been added and updated.
  • A feature toggle or safe disable path has been added (if applicable).
  • User-facing polish:
    • Ask: "Is this ready-looking?"
  • Cross-linking between Jira and GitHub:
    • PR links to the relevant Jira issue.
    • Jira ticket has a comment referencing this PR.

@rutmanz rutmanz self-assigned this Jul 3, 2025
@rutmanz rutmanz added enhancement ui/ux Relating to user interface, or in general, user experience exporter labels Jul 3, 2025
@rutmanz rutmanz force-pushed the zachr/1883/exporter-ui branch from 553417a to cea6ff1 Compare July 9, 2025 18:28
@rutmanz rutmanz marked this pull request as ready for review July 9, 2025 18:32
@rutmanz rutmanz requested review from a team as code owners July 9, 2025 18:32
@autodesk-chorus
Copy link

Chorus detected one or more security issues with this pull request. See the Checks tab for more details.

As a reminder, please follow the secure code review process as part of the Secure Coding Non-Negotiable requirement.

@azaleacolburn azaleacolburn added the refactor The most important part of software development. label Jul 9, 2025
@rutmanz rutmanz requested a review from azaleacolburn July 17, 2025 16:13
Copy link
Contributor

@azaleacolburn azaleacolburn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice work, lgtm!

Copy link
Member

@PepperLola PepperLola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good and worked to export Dozer, I just have a couple nitpicks

Copy link
Collaborator

@Dhruv-0-Arora Dhruv-0-Arora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 2025-07-22 at 10 06 36 AM

doesn't seem to be happening on dev for me

@rutmanz rutmanz requested a review from Dhruv-0-Arora July 22, 2025 19:00
Copy link
Member

@PepperLola PepperLola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it looks good. For some reason when I add dozer's face to the material tagging table it disappears when I close and reopen the exporter, even though other components (e.g. wheels) stay there. I think it might have something to do with it being linked from another document?

Copy link
Collaborator

@Dhruv-0-Arora Dhruv-0-Arora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 2025-07-24 at 11 11 40 AM

When I click the "save" button, I get this error

@rutmanz
Copy link
Member Author

rutmanz commented Jul 25, 2025

@Dhruv-0-Arora I had that a while ago in testing but thought I fixed it, do you have logs/a way to reproduce?

@Dhruv-0-Arora
Copy link
Collaborator

@Dhruv-0-Arora I had that a while ago in testing but thought I fixed it, do you have logs/a way to reproduce?

I wasn't able to reproduce it again. It might have been some problem with the web build that I had done previously although unlikely since I do recall rebuilding the exporter UI (because I had deleted it prior to building it)

Copy link
Member

@BrandonPacewic BrandonPacewic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I click the "save" button, I get this error

This looks like a bug manifested from Fusion caching stuff. I don't have any evidence for that other than my intuition of working with Fusion's python api.

Like I said before I really should have done this last summer. Looks amazing, nice work.

* dev: (35 commits)
  Per Incident Penalty
  Format
  Unit Test Fix
  Format
  Unconditional Overwrite Fix
  Format
  Camera tries to find a focus if no focus exists
  Action Link Updated
  fix: remove analytics stuff (oopsie)
  fix: merge issue
  fix: remove eslint and prettier configs
  fix: make biome actually enforce eslint's rules, include react rules
  Clearer Config
  Format
  PR Feedback
  Format
  Scene Object Test Improvements
  Eslint Removed
  fix: update bun lockfile
  Update DefaultMatchModeConfigs.ts
  ...
@BrandonPacewic
Copy link
Member

Manually silencing chorus warning:

security/semgrep
app.chorus.semgrep.rules.njsscan.semantic_grep.crypto.node_insecure_random_generator

crypto.pseudoRandomBytes()/Math.random() is a cryptographically weak random number generator.

@BrandonPacewic BrandonPacewic mentioned this pull request Jul 25, 2025
@BrandonPacewic BrandonPacewic merged commit dd25423 into dev Jul 25, 2025
18 checks passed
@BrandonPacewic BrandonPacewic deleted the zachr/1883/exporter-ui branch July 25, 2025 23:31
@BrandonPacewic BrandonPacewic mentioned this pull request Jul 25, 2025
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement exporter refactor The most important part of software development. ui/ux Relating to user interface, or in general, user experience
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants