explaingit

charlesq34/pointnet2

Analysis updated 2026-05-18

3,647PythonAudience · researcherComplexity · 5/5LicenseSetup · hard

TLDR

A research codebase that trains neural networks to classify and segment 3D point cloud data.

Mindmap

mindmap
  root((PointNet++))
    What it does
      Processes 3D point clouds
      Hierarchical feature learning
      Handles uneven point density
    Tech stack
      TensorFlow
      Python
      CUDA
    Use cases
      Shape classification
      Part segmentation
      Scene parsing
    Audience
      Researchers
      ML engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Train a model to classify 3D objects from point cloud scans

USE CASE 2

Segment which part of an object each point belongs to, like chair legs vs seat

USE CASE 3

Parse indoor scenes semantically from ScanNet-style 3D data

USE CASE 4

Study a hierarchical approach to processing raw 3D coordinate data

What is it built with?

PythonTensorFlowCUDA

How does it compare?

charlesq34/pointnet2genmoai/mochiskorokithakis/catt
Stars3,6473,6473,647
LanguagePythonPythonPython
Setup difficultyhardhardeasy
Complexity5/55/52/5
Audienceresearcherresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Built on TensorFlow 1.2 and Python 2.7, requires compiling custom CUDA ops from source.

Free to use, modify, and distribute under the MIT license.

In plain English

PointNet++ is a research project from Stanford University focused on teaching computers to understand 3D shapes. The input it works with is called a point cloud: a large set of (x, y, z) coordinate measurements, the kind of data produced by a 3D sensor or LiDAR scanner. Rather than converting that data into images or meshes first, this system works directly with the raw coordinate points. The original PointNet (version 1) processed each point in isolation or looked at the entire set as one global summary, missing the in-between spatial structure. PointNet++ improves on that by working hierarchically, meaning it first groups nearby points together, extracts local patterns from those groups, then combines those patterns into bigger-picture patterns at larger scales. The approach is similar to how image recognition networks zoom out through layers, except here the input is 3D coordinates rather than pixels. The system also handles the fact that real-world 3D scans are not evenly spread out: some areas have dense clusters of points and others are sparse, so special layers are included to handle those varying densities. The code in this repository lets you train and evaluate two main tasks. The first is shape classification, where the model learns to identify what kind of object a point cloud represents, tested on a dataset called ModelNet40 with 40 categories of 3D models. The second is part segmentation, where the model labels which part of an object each point belongs to, such as distinguishing the seat, back, and legs of a chair, using a dataset called ShapeNet. A third task, semantic scene parsing of indoor environments using the ScanNet dataset, is also included with its own training script. The project was originally built on TensorFlow 1.2 with Python 2.7, which are older versions. Custom TensorFlow operators need to be compiled from source before use, a step that requires some familiarity with build tools. GPU access is strongly recommended. The code is released under the MIT license. This work was originally published at the NeurIPS 2017 conference.

Copy-paste prompts

Prompt 1
Explain how PointNet++ processes 3D point cloud data hierarchically.
Prompt 2
Show me how to set up the environment to train PointNet++ on ModelNet40 for shape classification.
Prompt 3
How do I compile the custom TensorFlow operators this repo needs before training?
Prompt 4
Walk me through running the part segmentation task on ShapeNet with this code.

Frequently asked questions

What is pointnet2?

A research codebase that trains neural networks to classify and segment 3D point cloud data.

What language is pointnet2 written in?

Mainly Python. The stack also includes Python, TensorFlow, CUDA.

What license does pointnet2 use?

Free to use, modify, and distribute under the MIT license.

How hard is pointnet2 to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is pointnet2 for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.