All Projects → ddiakopoulos → Tinyply

ddiakopoulos / Tinyply

🌍 C++11 ply 3d mesh format importer & exporter

Projects that are alternatives of or similar to Tinyply

Polylidar
Polylidar3D - Fast polygon extraction from 3D Data
Stars: ✭ 106 (-70.39%)
Mutual labels:  mesh, geometry
Hole fixer
Demo implementation of smoothly filling holes in 3D meshes using surface fairing
Stars: ✭ 165 (-53.91%)
Mutual labels:  mesh, geometry
Trimesh
Python library for loading and using triangular meshes.
Stars: ✭ 1,303 (+263.97%)
Mutual labels:  mesh, geometry
Point Cloud Utils
A Python library for common tasks on 3D point clouds
Stars: ✭ 281 (-21.51%)
Mutual labels:  mesh, geometry
TriangleMeshDistance
Header only, single file, simple and efficient C++11 library to compute the signed distance function (SDF) to a triangle mesh
Stars: ✭ 55 (-84.64%)
Mutual labels:  geometry, mesh
Plexus
Polygonal mesh processing.
Stars: ✭ 90 (-74.86%)
Mutual labels:  mesh, geometry
Building Blocks
A voxel library for real-time applications.
Stars: ✭ 140 (-60.89%)
Mutual labels:  mesh, geometry
Matgeom
Matlab geometry toolbox for 2D/3D geometric computing
Stars: ✭ 168 (-53.07%)
Mutual labels:  mesh, geometry
miniply
A fast and easy-to-use PLY parsing library in a single c++11 header and cpp file
Stars: ✭ 29 (-91.9%)
Mutual labels:  geometry, file-format
classy blocks
Python classes for easier creation of OpenFOAM's blockMesh dictionaries.
Stars: ✭ 53 (-85.2%)
Mutual labels:  geometry, mesh
MeshFrame
A light-weighted, efficient and header-only mesh processing frame work.
Stars: ✭ 18 (-94.97%)
Mutual labels:  geometry, mesh
pymadcad
Simple yet powerful CAD (Computer Aided Design) library, written with Python.
Stars: ✭ 63 (-82.4%)
Mutual labels:  geometry, mesh
Three Mesh Bvh
A BVH implementation to speed up raycasting against three.js meshes.
Stars: ✭ 302 (-15.64%)
Mutual labels:  mesh, geometry
Uproot3
ROOT I/O in pure Python and NumPy.
Stars: ✭ 312 (-12.85%)
Mutual labels:  file-format
Geometry
Boost.Geometry - Generic Geometry Library | Requires C++14 since Boost 1.75
Stars: ✭ 282 (-21.23%)
Mutual labels:  geometry
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (-24.58%)
Mutual labels:  geometry
Openmvg
open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
Stars: ✭ 3,902 (+989.94%)
Mutual labels:  geometry
Standardgeometryshader
An example of a geometry shader with Unity's standard lighting model support.
Stars: ✭ 303 (-15.36%)
Mutual labels:  geometry
Intersects
a simple collection of 2d collision/intersects functions. Supports points, circles, ellipses, lines, axis-aligned boxes, and polygons
Stars: ✭ 270 (-24.58%)
Mutual labels:  geometry
Colmap
COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. It offers a wide range of features for reconstruction of ordered and unordered image collections. The software is licensed under the new BSD license. If you use this project for your research, please cite:
Stars: ✭ 3,479 (+871.79%)
Mutual labels:  geometry

tinyply 2.3

Release is 2.3.3 License is Unlicense

Platform Build Status
GCC + Clang Build status
VS2019 Build status

A single-header, zero-dependency (except the C++ STL) public domain implementation of the PLY mesh file format. An overview and definition of the file format is available here. This format is often used in the computer vision and graphics communities for its relative simplicity, ability to support arbitrary mesh attributes, and binary modes. Famously, PLY is used to distribute 3D models in the Stanford 3D Scanning Repository, including the bunny.

The library is written in C++11 and requires a recent compiler (GCC 4.8+ / VS2015+ / Clang 2.9+). Tinyply supports exporting and importing PLY files in both binary and ascii formats. Tinyply supports filesizes >= 4gb and can read big-endian binary files (but not write them).

Getting Started

The project comes with a simple example program demonstrating a circular write / read and all of the major API functionality.

In The Wild

Since 2015, tinyply has been used in hundreds of open-source projects including pointcloud tools, raytracers, synthetic data renderers, computational geometry libraries, and more. A few notable projects are highlighted below:

  • libigl, a robust computational geometry library from UoT professors Alec Jacobson and Daniele Panozzo.
  • Maplab from ETH Zürich, a research-oriented visual-inertial mapping framework.
  • glChAoS.P from Michele Morrone, a rendering sandbox for 3D strange attractors.
  • Cilantro, a robust and featureful C++ library for working with pointcloud data.
  • HabitatAI, Facebook's 3D simulator for training AI agents in photorealistic environments.
  • ScanNet, an RGB+D dataset of 2.5 million views across 1500 scans.
  • PlaneRCNN, 3D plane detection via single-shot images from NVIDIA Research
  • KNOSSOS, a framework to visualize and annotate 3D image data (neural morphology and connectivity).

tinyply not what you're looking for? tinyply trades some performance for simplicity and flexibility. For domain-specific uses (e.g. where your application does not need to handle arbitrary user-fed PLY files), there are other speedier alternatives. For more, please check out the following benchmarks:

Past Versions

  • version 2.0 is an API re-write to support later improvements towards variable length lists. One notable change is that tinyply now produces and consumes structured byte arrays, with type information held as metadata.
  • version 2.1 contained minor bugfixes and speed improvements.
  • version 2.2 is a rewrite of the inner read/write loop. Compared to version 2.0, this version reads and writes binary about five times faster. When a list size hint is given for reading, the performance is approximately comparable to rply.
  • version 2.3 contains minor bugfixes and performance improvements. A feature of the example application includes the ability to pre-load files into memory for improved runtime parsing performance on many files.

License

This software is in the public domain. Where that dedication is not recognized, you are granted a perpetual, irrevocable license to copy, distribute, and modify this file as you see fit. If these terms are not suitable to your organization, you may choose to license it under the terms of the 2-clause simplified BSD.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].