Sparse local operations for point clouds in any dimension.
Project description
❒ SquareNet
SquareNet maps unstructured point clouds to structured grids through a bijective transformation. It replaces expensive spatial queries (k-NN, radius search) with super fast sliding window operations. Think of it as a powerful alternative to kd-trees, voxelization, rasterization and neighborhood graphs. ✔ Works in any dimension ✔ Handles non-convex geometries ✔ Scales to millions of points (fast processing)
🚀 Why SquareNet?
- Speed: $O(N)$ local operations via vectorized sliding windows.
- Memory: Contiguous memory access instead of irregular spatial lookups.
- Simplicity: Pure NumPy-based logic, no heavy spatial dependencies.
📦 Installation
pip install squarenet
🧠 Quick Start
-> exemples/00_getting_started.ipynb
from squarenet import SquareNet
import numpy as np
# Initialize and Fit
N = 5*11*7*13
d = 4
points = np.random.rand(N, d)
IJKL = (5, 11, 7, 13)
sqnet = SquareNet(IJ_=IJKL) # Define grid dimensions, here 4D
sqnet.fit(points)
# Map any property of the points to the grid e.g. the norm, could be anything else
Xpts = np.linalg.norm(points, axis = 1) #(N, *C)
Xmap = sqnet.map(Xpts) #(5, 11, 7, 13, *C)
Xrec = sqnet.invert_map(Xmap) #(N, *C)
Compute Local Views
# views enhance Xpts with a view in a rectangular neighborhood
# (in the grid) with radius *wr and size *ws = 2wr+1
Xview = sqnet.views(Xpts, wr=5, invert_map = True) #(N, *C, *ws)
🗺️ Visualizing the Mapping
You can use the built-in checkerboard to verify neighborhood preservation:
sqnet = SquareNet(IJ_=(400, 400))
sqnet.fit("france") #require !pip install shapely
sqnet.checkerboard()
📈 Key Applications
- Point Cloud Processing: Fast local feature aggregation.
- Kernel Methods: Efficient sparse approximation of large kernels.
- Deep Learning: Pre-structuring irregular data for CNN/Transformer inputs.
License: MIT | Author: ArmanddeCacqueray
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file squarenet-0.2.4.tar.gz.
File metadata
- Download URL: squarenet-0.2.4.tar.gz
- Upload date:
- Size: 109.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3782dc0c0978fac9f886a77c407f9aca60fa75330ed1608926cb36455e753bfe
|
|
| MD5 |
9689d15346c1937fa5292dbce41b5caf
|
|
| BLAKE2b-256 |
6e2084c020a903d07713e6708ab4f6d00565606b628a2a4b4561b3482d78b9eb
|
File details
Details for the file squarenet-0.2.4-py3-none-any.whl.
File metadata
- Download URL: squarenet-0.2.4-py3-none-any.whl
- Upload date:
- Size: 107.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c371107eb9f5386aac87c467f601c5fda92edb155bfe30bb396c47153688145
|
|
| MD5 |
3835b5f431ce44a4ea219e6a73aa4c48
|
|
| BLAKE2b-256 |
30fb1ab377ec024ab63aca04ac8770d014330324d92c72a5f04458f65fe6f65e
|