MCPcopy Index your code
hub / github.com/apple/ml-pointersect

github.com/apple/ml-pointersect @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
846 symbols 2,634 edges 112 files 487 documented · 58%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Pointersect: Neural Rendering with Cloud-Ray Intersection

[Website] [Paper] [Docs] [Examples] [Videos]

Pointersect is a plug-and-play method for rendering point clouds. It is differentiable and does not require per-scene optimization.

Usage

Given a point cloud and a ray, pointersect returns:

  • the intersection point between the ray and the underlying surface represented by the point cloud;
  • surface normal at the intersection point; and
  • color/material interpolation weights of neighboring points.

You can use point clouds containing only xyz---neither color nor vertex normal is needed.

Examples

  1. We use the surface normal estimated by pointersect to relight a point cloud.

  1. Even though pointersect is designed to render clean point clouds, here is an example where we use a pretrained pointersect model to render a lidar-scanned point cloud without any optimization.

  1. Edit and render without re-optimization.

  1. We use pointersect with path tracing to render the global illumination of a scene.

How to use

You can use pointersect by installing the pypi package:

pip install pointersect

or

# in the repo root 
pip install .

We provide API, command line tool, and training script for using pointersect. See the documentation for instructions.

We also provide a few examples if you want to jump in directly :)

Citation

If you use this software package, please cite our paper:

@inproceedings{chang2023pointersect,
  author={Jen-Hao Rick Chang and Wei-Yu Chen and Anurag Ranjan and Kwang Moo Yi and Oncel Tuzel},
  title={Pointersect: Neural Rendering with Cloud-Ray Intersection},
  booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  year = {2023}
}

Core symbols most depended-on inside this repo

size
called by 255
pointersect/inference/structures.py
reshape
called by 194
pointersect/inference/structures.py
to
called by 145
pointersect/inference/structures.py
detach
called by 133
pointersect/inference/structures.py
get
called by 127
cdslib/core/utils/argparse_utils.py
cat
called by 59
pointersect/inference/structures.py
device
called by 59
pointersect/inference/structures.py
clone
called by 52
pointersect/inference/structures.py

Shape

Method 529
Function 214
Class 103

Languages

Python97%
C++3%

Modules by API surface

pointersect/inference/structures.py119 symbols
plib/utils.py42 symbols
cdslib/core/script/base_train.py39 symbols
cdslib/core/utils/print_and_save.py24 symbols
plib/rigid_motion.py23 symbols
tests/cdslib/script/test_base_train.py22 symbols
pointersect/script/train_v2.py22 symbols
cdslib/core/nn/nn_utils.py21 symbols
tests/pointersect/pr/cuda/test_cuda.py19 symbols
cdslib/core/nn/modules/subspace.py17 symbols
cdslib/core/models/base_model.py17 symbols
tests/plib/test_utils.py16 symbols

For agents

$ claude mcp add ml-pointersect \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact