title: pardesline vs Open3D, PyVista, SimpleITK, trimesh, MONAI, TorchIO and Hugging Face datasets description: Where pardesline sits next to the 3D and medical imaging libraries it builds on: dataset access, standardization, manifests, high-level API, data-tied defaults, pretrained models, MCP. Facts with sources, not marketing.
Comparison with other libraries¶
pardesline is the dataset layer and the domain-vocabulary API on top of these libraries. It imports Open3D, PyVista, VTK and SimpleITK, runs their algorithms, and hands you their objects (to_open3d(), to_pyvista(), to_sitk()). Nothing here is a criticism of them: without them there would be nothing to wrap. Each cell links to the documentation it was checked against (October 2026); corrections are welcome as issues.
Datasets¶
| pardesline | Open3D | PyVista | SimpleITK | trimesh | MONAI | TorchIO | HF datasets |
|
|---|---|---|---|---|---|---|---|---|
| Public 3D / medical datasets loadable by name | 43 manifests: MSD, AMOS, TotalSegmentator, LUNA16, IXI, VerSe, SPIDER, CHAOS, TCIA collections, OpenNeuro, KiTS, MedShapeNet, KITTI, Objaverse, 3D Arena, UniOcc, C3VD | demo data (open3d.data: bunny, armadillo, fragments) [doc] |
example datasets (pyvista.examples.download_*) [doc] |
notebook data fetcher (fetch_data) [doc] |
no | DecathlonDataset, TciaDataset, MedNISTDataset [doc] |
IXI, EPISURG, RSNA-MICCAI and others [doc] | any Hub repo; files are returned untyped [doc] |
| Any Hugging Face repo, TCIA collection, S3 bucket, remote archive by URI | hf://, tcia://, s3://, https://…zip |
no | no | no | no | TCIA through its own client | no | Hub only |
| Lazy download inside archives (HTTP Range) | yes (zip, zip64, tar) | n/a | no | no | no | no | no | no |
| Licence, citation and provenance attached to each object | yes | no | no | no | no | no | no | licence field on the card |
| Manifest describing roles, frames, units, labels, layouts | yes, JSON, drafted by scan for your folders |
no | no | no | no | MSD dataset.json read |
no | dataset card |
| Patient-level splits | ds.split(by="patient") |
no | no | no | no | user code | user code | user code |
Objects and standardization¶
| pardesline | Open3D | PyVista | SimpleITK | trimesh | MONAI | TorchIO | HF datasets |
|
|---|---|---|---|---|---|---|---|---|
| Point clouds, meshes and volumes in one object model | yes, plus label maps, splats, raw arrays, images | points, meshes, voxel grids | meshes, grids, volumes | volumes | meshes | volumes (tensors) | volumes | no |
| Frame, units, labels carried with the data | yes (sidecar on save) | no | no | geometry in the image | units attribute | metadata dict | metadata | no |
| Standardization transforms (spacing, orientation, intensity) | explicit algorithms (pyvista_volume_processing, simpleitk_registration), never applied silently |
no | VTK filters | ITK filters | no | Spacingd, Orientationd, ScaleIntensityd [doc] |
Resample, ToCanonical, RescaleIntensity [doc] |
no |
Conversions named after the job (to_mesh, to_points, segment, align) |
yes | algorithm names | filter names | filter names | geometry names | transforms, bundles | transforms | no |
| Hand-off to the library's own objects | to_open3d(), to_pyvista(), to_sitk(), to_numpy() |
is Open3D | is PyVista | is SimpleITK | is trimesh | tensors | tensors | arrays |
Algorithms, defaults and models¶
| pardesline | Open3D | PyVista | SimpleITK | trimesh | MONAI | TorchIO | HF datasets |
|
|---|---|---|---|---|---|---|---|---|
| Classical 3D algorithms | 73 methods in 19 families (through Open3D, PyVista/VTK, SimpleITK, SciPy, pycpd) | registration, reconstruction, segmentation, features | VTK filters | registration, segmentation, filtering | geometry, booleans, ray casting | transforms, losses, metrics | no | no |
| Every parameter validated before running, with type, range and description | yes (ParameterError with the accepted list) |
Python signatures | signatures | signatures | signatures | signatures | signatures | n/a |
| Defaults tied to the data scale (voxel from the bounding box, thresholds as multiples) | yes, documented per parameter (why) | fixed numbers in tutorials | VTK defaults | ITK defaults | n/a | per bundle | per transform | n/a |
| Validated on real industrial / medical data | public stand-ins with committed numbers + examples/real_cases/ mechanism |
tutorials | gallery | notebooks | tests | Model Zoo benchmarks | papers | n/a |
| One-line pretrained model access | roadmap (model registry; reference scripts today) | Open3D-ML weights (RandLA-Net, KPConv) [doc] | no | no | no | Model Zoo bundles [doc] | no | through transformers |
| Local MCP server for AI agents | 14 tools, 20 skills | no | no | no | no | no | no | no |
| Licence | Apache-2.0 | MIT | MIT | Apache-2.0 | MIT | Apache-2.0 | Apache-2.0 | Apache-2.0 |
| Latest release checked | 0.2.0 (2026-10-14) | 0.20.0 (2026-09-16), wheels for Python 3.10–3.14 | 0.49.1 (2026-10-11) | 2.5.6 (2026-07-30) | 5.1.1 (2026-10-02) | 1.6.1 (2026-09-27) | 1.2.1 (2026-06-02) | 5.1.0 (2026-10-05) |
Release dates and wheel tags come from the PyPI JSON API on 2026-10-16.
Which one should you use?¶
- You work on one library's objects and know its parameters: use it directly. pardesline will not get in the way, it hands you those objects.
- You need a dataset, in a format you can compute on, with its licence: pardesline, then whichever library you like.
- You need MONAI or TorchIO transforms and training loops on medical volumes: use them; pardesline can feed them (
ds.export(folder)writes NIfTI-compatible MetaImage files,prepare_nnunet_dataset.pywrites the nnU-Net layout) and will load their model outputs back as label maps. - You need registration, reconstruction or segmentation that works on first call on data that is not the tutorial's: pardesline's defaults, with the reasons written down.
- You are building an agent that must browse datasets and run pipelines: pardesline's MCP server.