Skip to content

Create Graphics Settings Presets [SYNTH-91] - #1325

Merged
PepperLola merged 10 commits into
devfrom
roushils/91/graphics-setting-presets
Jun 29, 2026
Merged

Create Graphics Settings Presets [SYNTH-91]#1325
PepperLola merged 10 commits into
devfrom
roushils/91/graphics-setting-presets

Conversation

@RoushilS

Copy link
Copy Markdown
Contributor

TASK

SYNTH-91

Symptom

If the user wants to configure the simulation quality and performance to be optimized on their device, they have no quick way to do so.

Solution

Test various performance settings at 5 levels. Create a dropdown UI that allows clean preset selection. Also implement save and cancel behavior. Add useEffect to StatefulSlider to automatically update when base variable changes, as there was previously a disconnect when a user selected the preset but it didn't update. Add reusable setGraphicsPreferences method to make code more concise.

Additionally, reviewers ensuring that these actually are the best graphics presets for the simulator would be very much appreciated.

Verification

  • Graphics presets are useful on various performance levels.
  • UI correctly changes graphics levels
  • UI is intuitive and functional.
  • Various user edge cases (cancel, switching but not saving, opening when not on default setting, etc.) all work.

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.

RoushilS added 4 commits June 17, 2026 14:33
Added dropdown menu to select graphics
Created low, high, and ultra settings
Sliders now respond to changes not made by them
@RoushilS
RoushilS requested review from a team as code owners June 18, 2026 17:15
@RoushilS RoushilS added rendering Relating to the rendering engine or how something is rendered ui/ux Relating to user interface, or in general, user experience labels Jun 18, 2026

@rutmanz rutmanz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Image I think it's a little unintuitive to have the label stay when you manually change settings off of the preset, maybe change it to say "custom" or just be blank when other settings are modified. This also has the odd consequence of any modified graphics settings showing up as "medium" when you reload.

Comment on lines +129 to +136
return {
lightIntensity: 3,
fancyShadows: false,
maxFar: 20,
cascades: 2,
shadowMapSize: 2048,
antiAliasing: false,
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I could be wrong but I'm pretty sure light intensity doesn't change performance, it's just like a brightness setting. And (assuming the UI is done correctly) the shadow-related properties are ignored when fancy shadows are off, making low graphics just like medium graphics performance-wise but darker. Maybe remove low and shift the other ones so medium is low, high is medium (default), etc?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Also another note, there are differences in maxFar, cascades, shadowMapSize - all of which actually do not make a difference when fancyShadows is set to false. So, there is pretty much no quality difference between the two

Comment on lines +129 to +136
return {
lightIntensity: 3,
fancyShadows: false,
maxFar: 20,
cascades: 2,
shadowMapSize: 2048,
antiAliasing: false,
}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Also another note, there are differences in maxFar, cascades, shadowMapSize - all of which actually do not make a difference when fancyShadows is set to false. So, there is pretty much no quality difference between the two

Comment thread fission/src/ui/components/StatefulSlider.tsx
Comment thread fission/src/ui/modals/configuring/SettingsModal.tsx Outdated
@RoushilS

Copy link
Copy Markdown
Contributor Author

Because of my newfound knowledge, and the reviews, I pushed some changes and tested everything again. I think I found and patched all of the bugs but there could be more.

@RoushilS RoushilS self-assigned this Jun 18, 2026

@rutmanz rutmanz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm

@rutmanz

rutmanz commented Jun 19, 2026

Copy link
Copy Markdown
Member

might be good to wait for #1323 so that the graphicsPreferencesAreLow() method can be reused. Alternatively implement it again here and then just deduplicate in the merge conflict resolution

@AlexD717 AlexD717 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm. I like how the light intensity doesn't affect graphics settings.

Comment thread fission/src/ui/modals/configuring/SettingsModal.tsx Outdated
Comment thread fission/src/ui/modals/configuring/SettingsModal.tsx Outdated
@PepperLola
PepperLola requested a review from Dhruv-0-Arora June 29, 2026 16:49
@PepperLola
PepperLola enabled auto-merge June 29, 2026 21:06
@PepperLola
PepperLola merged commit 8d5a725 into dev Jun 29, 2026
16 checks passed
@PepperLola
PepperLola deleted the roushils/91/graphics-setting-presets branch June 29, 2026 21:08
@PepperLola PepperLola mentioned this pull request Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rendering Relating to the rendering engine or how something is rendered 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