bijective gridification for point clouds #1417
ArmanddeCacqueray
started this conversation in
General
Replies: 1 comment 1 reply
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Hi everyone,
I’m currently working on point cloud analysis and recently started using freud analytics, which I find very useful — especially for computing structure factors.
In my own work, I developed a data structure called SquareNet, which reorganizes point clouds onto a regular grid, similarly to voxelization. The key difference is that this mapping is bijective: each point is assigned to exactly one cell, and each cell contains exactly one point. The method work in any dimension and scales to datasets with millions of points.
This allows very efficient spatial queries through simple tensor slicing instead of traditional neighbor search structures (KD-trees, etc.) or looping on irregular voxels data.
I share a visual example here of how my mapping works:
https://github.com/ArmanddeCacqueray/SquareNet/blob/main/gridification_paris.gif
With this approach, I can, for example, compute a ground state configurations for hundreds of thousands of particles in ~20 seconds on a laptop CPU:
https://github.com/For-a-few-DPPs-more/hyperuniform-samplers/blob/main/notebooks/blue_noise.ipynb
I maid a python package out of it:
pip install squarenetI was wondering whether this kind of structure could be relevant for speeding up operations like
freud.density.LocalDensityor similar spatial queries.I’d be very interested in feedback from people working with freud or similar toolkits.
GitHub:
https://github.com/ArmanddeCacqueray/SquareNet
All reactions