Skip to content

Improve viewport readability and configurable scene renderingPr/lighting readability - #489

Draft
aaron4ce wants to merge 7 commits into
CommonWealthRobotics:developmentfrom
aaron4ce:pr/lighting-readability
Draft

aaron4ce wants to merge 7 commits into
CommonWealthRobotics:developmentfrom
aaron4ce:pr/lighting-readability

Conversation

@aaron4ce

@aaron4ce aaron4ce commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Draft PR for:
CommonWealthRobotics/CaDoodle-Application#313

This updates BowlerStudio viewport rendering to improve readability while keeping the scene behavior configurable.

Changes include:

  • configurable stable viewport lighting
  • preservation of the original BowlerStudio lighting through lighting.mode=kevin
  • configurable grid brightness, opacity and line width
  • configurable grid behavior while the camera is moving
  • scene style configuration through SceneStyleConfig
  • update to the bowler-script-kernel feature-edge/thumbnail branch
  • cleanup of the viewport rendering code after the initial experiments

The current default scene uses the stable lighting setup, but the original BowlerStudio-style lighting and grid behavior remain available through configuration.

While rebasing this work onto the current development branch, the recent camera/hand/grid changes from upstream were preserved. In particular, the newer hand rendering and grid alignment behavior remain in place.

Validation:

  • full CaDoodle build passes with the updated BowlerStudio and kernel
  • tested with large STL meshes around 20 MB
  • tested with two large meshes loaded at once
  • also tested with -XX:ActiveProcessorCount=2
  • viewport interaction remained responsive during these tests
  • feature edges and lighting were visually checked after the rebase

This is still a Draft PR. Feedback on rendering flow, configuration, and where heavier geometry processing should live would be very useful before further refactoring.

for (GridHolder gh : grids)
gh.setCameraMoving(true);
handGroup.setVisible(true);
if (gridHideTimer == null) {

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'd prefer not to rename variables in a PR that is also adding features.

boolean grids = visible && showLines;
boolean showSmall = grids && showSmallGrid;

String motionMode = SceneStyleConfig.getString("grid.motionMode", "all").toLowerCase(Locale.ROOT);

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.

will this need an update to all of the stylesheets in StyleCadoodle?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants