Potree JavaScript Brush Selection Tool with Dynamic Size, Clipping Box Filtering, Classification Assignment, and AJAX Export

Job ID: 39675817

Budget: €250 – €750 EUR

I need a custom JavaScript class for the latest Potree Viewer that implements an interactive brush selection tool for point clouds with advanced filtering and classification features.

Core Features
Dynamic Brush Size

Adjustable in real time (mouse wheel or slider).

Visible radius indicator.

Point Selection & Coloring

Click and drag to select points.

Selected points highlighted yellow.

Deselect mode to remove points from selection (restore original color).

Selection Persistence

Retains selection after camera movement.

Pause/Resume brush without losing data.

Distance-from-camera limit to restrict selectable points.

Clipping Box Awareness

If a Potree clipping box is active & visible → only select points inside the visible portion of that box.

No clipping box = full point cloud is available for selection.

Classification Assignment

When points are selected, they are also assigned classification 7 (noise) internally.

This allows them to be toggled visible/invisible via Potree’s built-in classification panel.

Data Storage & AJAX Export

Store selected points in an array without duplicates.

Function to export coordinates + optional attributes via AJAX to PHP.

Clear Selection button:

Empties array.

Restores original color.

Resets classification back to original.

Performance Optimized

Must work smoothly with millions of points.

Efficient filtering when clipping box and distance limits are active.

Inline documentation per function

The tool should work with point clouds imported to potree from copc format or from own data format(potree converter)