voxel51 / fiftyone

Refine high-quality datasets and visual AI models
https://fiftyone.ai
Apache License 2.0
8.72k stars 550 forks source link

Merge/main to develop #4439

Closed findtopher closed 4 months ago

findtopher commented 4 months ago

What changes are proposed in this pull request?

Merge Main to Develop after v0.24.0 release

Summary by CodeRabbit

coderabbitai[bot] commented 4 months ago

Walkthrough

This update introduces significant enhancements across various components, focusing on improving grid configuration, 3D visualization, and dataset management. Key changes include new state management for grid properties, updated projection metadata, refined detection overlays, and expanded dataset documentation. Additionally, the update includes performance optimizations, bug fixes, and new features like customizable user roles and 3D dataset support.

Changes

File(s) Change Summary
app/packages/components/src/components/PopoutSectionTitle/PopoutSectionTitle.tsx Added flexbox styling for alignment and spacing.
app/packages/looker-3d/src/action-bar/ToggleGridHelper.tsx Enhanced grid configuration with new state atoms, components, and conditional rendering logic.
app/packages/looker-3d/src/action-bar/shared.tsx Refactored ActionPopOver component to use forwardRef for better ref management.
app/packages/looker-3d/src/action-bar/style.module.css Added new CSS classes for grid configuration layout and alignment.
app/packages/looker-3d/src/fo3d/Gizmos.tsx Updated grid and scene size calculations, added Recoil state management for grid settings, and adjusted grid component props.
app/packages/looker-3d/src/fo3d/point-cloud/Pcd.tsx Updated point loader logic, added memoization, and included a commented-out block for centering points.
app/packages/looker-3d/src/fo3d/point-cloud/use-pcd-material.tsx Added a key prop to the <RgbShader> component.
app/packages/looker-3d/src/hooks/use-pcd-material-controls.ts Increased maximum point size value and added a comment about adding a text box for user input.
app/packages/looker-3d/src/state.ts Introduced new atom declarations for managing grid-related state.
app/packages/looker/src/overlays/detection.ts Added convexHull property to DetectionLabel and updated rendering logic to draw convex hulls.
app/packages/looker/src/state.ts Updated OrthogrpahicProjectionMetadata type to include normal, min_bound, and max_bound fields with three numbers each.
app/packages/looker/src/worker/label-3d-projection-utils.test.ts Added test cases for the projectTo2D function to project 3D points onto 2D planes.
app/packages/looker/src/worker/label-3d-projection-utils.ts Introduced utility functions for working with 3D and 2D bounding boxes, including projection and rotation functions.
app/packages/looker/src/worker/threed-label-processor.ts Added imports for convex hull calculation and updated bounding box projection logic.
docs/source/release-notes.rst Updated release notes for FiftyOne Teams 1.7.0 and FiftyOne 0.24.0, detailing new features, fixes, and improvements.
docs/source/teams/roles_and_permissions.rst Refined dataset access permissions for groups and added a new section on the Roles page for admins.
docs/source/user_guide/app.rst Added and removed images related to the App, and included information about customizing tooltip attributes.
docs/source/user_guide/dataset_zoo/datasets.rst Introduced a new section for the "Quickstart 3D" dataset with details on its contents and usage.
docs/source/user_guide/using_datasets.rst Added explanations on dataset media types, persistence, versioning, custom color schemes, and orthographic projection images for 3D datasets.
e2e-pw/scripts/generate-screenshots-docker-image/build-docker-image.sh Excluded additional directories during rsync operation and added a step to build a Docker image named screenshot.
fiftyone/core/labels.py Clarified the map_path parameter in the Heatmap class to specify it as the absolute path to the heatmap image on disk.
fiftyone/core/session/session.py Removed asdict import and added _pull_group_slice function for group slicing logic.
fiftyone/core/threed/scene_3d.py Updated Scene class with example usage code, modified __repr__ method, and clarified docstrings.
fiftyone/operators/executor.py Modified set_progress method to update logging behavior for progress and label information.
fiftyone/utils/super_gradients.py Refactored _convert_yolo_nas_detection_model function, adjusted model loading logic for GPU usage, and renamed _predict_all to predict with a new predict_all method for batch prediction.
fiftyone/utils/utils3d.py Added normal field to OrthographicProjectionMetadata class, and added padding parameter to projection functions to apply relative padding around the point cloud before projection.
fiftyone/zoo/datasets/base.py Added Quickstart3DDataset class representing a small 3D dataset with meshes, point clouds, and oriented bounding boxes, including methods for downloading, preparing, and parsing dataset metadata.
setup.py Changed version specification for the Jinja2 package from >=3 to ==3.0.3.
tests/unittests/utils3d_tests.py Modified test_orthographic_projection_metadata_field to include assertions for the normal field in the metadata and field objects.

Poem

In the code where grids align, New atoms and states do shine. Projections clear, bounding boxes true, Detection overlays, a fresh view. With datasets rich, roles refined, A leap in features, so well designed. 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.