Giter Site home page Giter Site logo

tinyply's Introduction

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.

tinyply's People

Contributors

adrian-bodenmann avatar ataber avatar atablash avatar bchretien avatar ddiakopoulos avatar eren121 avatar holynski avatar jiri avatar maruncz avatar mfpgs avatar myd7349 avatar nigels-com avatar ohadmen avatar ramonarguelles avatar svenevs avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.