Skip to content
Back to skills

Data Preparation

ASecurity

"Prepare and validate PointLLM Objaverse and ModelNet point-cloud

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
toolspythongobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill data-preparation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Data Preparation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Data Preparation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-data-preparation-9e801e77/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-data-preparation-9e801e77)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: data-preparation
description: "Prepare and validate PointLLM Objaverse and ModelNet point-cloud
  and instruction data, including NPY schemas, normalization, dataset APIs, and
  safe tiny fixtures."
disable-model-invocation: true
metadata:
  disco-role: operating
license: CC BY-NC-SA 4.0
---

# PointLLM data preparation

Use this route when a Researcher must make point-cloud or instruction data
usable by PointLLM, inspect a dataset configuration, or diagnose a data-shape,
annotation, or collation failure. This is a preparation and validation route;
it does not launch training, generate model responses, or call external GPT
evaluators.

## Quick route

1. Identify the workflow: Objaverse instruction data, Objaverse point-only
   inference input, or ModelNet40 classification data.
2. Establish paths using the layouts in [data-formats.md](references/data-formats.md).
   Do not download or extract data from a validation script.
3. Run the bundled, read-only validator before constructing a dataset:

   ```bash
   python scripts/validate_pointcloud_data.py \
     --data-path data/objaverse_data \
     --anno-path data/anno_data/PointLLM_brief_description_660K_filtered.json \
     --pointnum 8192
   ```

   For a small fixture, use its actual row count, for example
   `--pointnum 4 --max-files 10`. Add `--no-require-annotation-files` only
   when checking standalone NPY files.
4. Inspect the API contract in [api-reference.md](references/api-reference.md)
   before changing `pointnum`, `use_color`, conversation filters, or ModelNet
   YAML. Apply the failure guide in [troubleshooting.md](references/troubleshooting.md)
   when a check fails.
5. Hand point-only inputs to the [inference sibling route](../inference-serving/SKILL.md),
   data arguments and loaders to the [training sibling route](../training/SKILL.md),
   and benchmark-specific ModelNet/Objaverse inputs to the
   [evaluation sibling route](../evaluation/SKILL.md). Keep this route focused
   on the data contract they consume.

## Primary APIs

The route covers `ObjectPointCloudDataset`, `ModelNet`, `pc_norm`,
`pc_normalize`, `farthest_point_sample`,
`DataCollatorForPointTextDataset`, `load_objaverse_point_cloud`, and
`make_object_point_data_module`. Read [api-reference.md](references/api-reference.md)
for signatures and return shapes.

## Required Objaverse contract

- Each colored file is `<object_id>_<pointnum>.npy`; the released training
  convention is `8192` rows and six columns `(xyzrgb)`.
- Columns `0:3` are floating-point coordinates. Columns `3:6` are RGB values
  in the inclusive range `[0, 1]`, not 0--255 bytes.
- Values must be finite. Validate every annotation `object_id` against the
  corresponding file before using a dataset. A missing object file is a data
  error, not a reason to fabricate a zero cloud.
- An annotation is normally a JSON list of records containing `object_id`, an
  optional `conversation_type`, and `conversations`: alternating message
  objects with `from` (`human` or `gpt`) and `value` strings. The first user
  value conventionally contains `<point>`.
- Training data is under `data/anno_data`; the filtered 660K brief file omits
  the reserved validation objects. Complex 70K data uses richer conversation
  types. Evaluation ground truth uses the same object-id/conversation family.

## Required ModelNet contract

- `ModelNet40.yaml` defaults to `DATA_PATH: data/modelnet40_data`, 40 classes,
  `npoints: 8192`, random sampling, and no normals, height, or color.
- The loader expects a pickle `.dat` pair named
  `modelnet40_<train|test>_8192pts_fps.dat`, containing
  `(list_of_points, list_of_labels)`. The test artifact is the primary
  evaluation input; do not substitute Objaverse JSON for it.
- The bundled 40-label order is authoritative for `label_names`; preserve it
  when editing or replacing the YAML/category file.

## Safety gates

- Validate a tiny synthetic NPY/JSON fixture first. Never use a huge download to
  debug a schema or tokenizer issue.
- Keep `pointnum` consistent across filename, loader argument, and model
  expectation. A custom count is possible, but it is not the released
  8192-point convention.
- Treat normalization as a geometry transform: center XYZ at its centroid and
  scale by the maximum Euclidean radius. RGB/other columns are preserved by
  `pc_norm`; `pc_normalize` accepts XYZ only.
- A constant XYZ cloud has zero radius and causes division by zero in the
  repository implementation. Reject it during validation rather than allowing
  NaN/Inf into a model.
- `use_color=False` drops NPY columns after loading. `use_color=True` keeps RGB
  and filters two known corrupted colored Objaverse IDs in the dataset class.
  Do not silently convert arbitrary color ranges.

For exact signatures, filtering order, sampling behavior, and collator shape
rules, read the two bundled references rather than guessing from this router.

Files in this skill

  • SKILL.md4.8 KB
  • references/api-reference.md6.1 KB
  • references/data-formats.md4.9 KB
  • references/troubleshooting.md5.7 KB
  • scripts/validate_pointcloud_data.py8.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.