30 open-source projects similar to tinyobjloader/tinyobjloader, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Tinyobjloader alternative.
TinyOBJLoader is a single-header C++ library designed for parsing Wavefront OBJ files. It functions as a stream-based text parser that extracts vertex, normal, and texture data into structured arrays for use in graphics and physics engines. The project distinguishes itself as a high-performance geometry loader that utilizes multi-threading to distribute the processing of large-scale 3D environments across multiple CPU cores. It includes a mesh triangulator that converts complex polygons into triangles to ensure compatibility with standard graphics hardware. The library supports a variety of
mujoco_menagerie is a curated library of physical robot specifications and XML model definitions designed for standardized dynamics and contact simulation. It provides a collection of high-quality robot model files for humanoids, quadrupeds, and manipulators, alongside detailed kinematic and inertial parameters used to reproduce real-world robot behavior in virtual environments. The project serves as a repository of robotics simulation assets and MJCF model definitions optimized for accuracy. It includes standardized model libraries specifically for bipedal, quadrupedal, and humanoid hardware
Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into native language objects. It functions as a JSON data binding library and a streaming parser that reads and writes data as discrete tokens to process large datasets with minimal memory. The project distinguishes itself through a bytecode serialization accelerator that replaces standard reflection with generated bytecode to increase data binding speed. It employs a module-based extensibility model to support a wide range of formats beyond JSON, including XML, YAML, CSV, TOML, and bin
Cereal is a C++ serialization library and object persistence tool used to convert data types and containers into formats for storage or transmission. It is implemented as a header-only library, allowing it to be included directly in source code without the need for a compiled binary. The library supports multiple data representations, including binary, XML, and JSON. It provides the ability to define custom archives, enabling the development of specialized output formats to control how data is encoded and stored. The system handles the conversion of complex objects through template-based ser
tinygltf is a C++ library designed as a parser, serializer, and validation tool for 3D models in the glTF 2.0 binary and JSON formats. It functions as a streaming processor that can handle large 3D asset files incrementally through a callback-driven approach to reduce memory overhead. The library uses a header-only implementation to simplify integration. It employs memory mapping to map binary buffers directly into memory and utilizes a symmetric parse-write pipeline to maintain data consistency between reading and writing files. The system provides capabilities for 3D asset processing, incl
zlib is a lossless data compression library that implements the deflate compression algorithm, combining LZ77 sliding window and Huffman coding. It provides the core compression and decompression engines, along with support for gzip, zlib, and raw deflate stream formats, enabling data to be compressed and restored without any loss of information. The library offers a range of capabilities for handling compressed data, including single-call memory and file operations, as well as incremental stream-based processing for working with data larger than available memory. It includes mechanisms for a
glslViewer is a console-based GLSL shader sandbox and renderer designed for the real-time testing and iteration of fragment and vertex shaders. It functions as a live-reloading viewer that automatically updates visual output when source files are modified on disk. The system also operates as a headless renderer, capable of generating frames and exporting images without a physical display. The project is distinguished by its support for multi-pass rendering, utilizing framebuffer ping-ponging and convolution pyramids to execute complex visual effects. It features an integrated OSC controller t
This project provides a lossless compression algorithm and a byte-oriented compression library designed for high-speed data reduction and maximum decompression speed. It functions as a stream-oriented compression engine, a software library for encoding and decoding data blocks, and a command-line tool for managing interoperable compressed frames. The system distinguishes itself through the use of predefined pattern dictionaries to improve compression ratios for small data sets and small packets. It supports multiple processing modes, including high-speed block compression for minimal latency
RapidJSON is a header-only C++ library designed for high-performance parsing, generation, and manipulation of JSON data. It functions as a dual-mode engine, providing both an in-memory document object model for tree-based manipulation and a stream-based interface for event-driven processing. The library is built to minimize memory footprint and maximize execution speed, making it suitable for resource-constrained environments. The library distinguishes itself through advanced memory management and optimization techniques, including in-situ parsing that modifies input buffers directly to elimi
This project is a learning guide and collection of study notes designed to teach Node.js backend development. It provides a comprehensive core API reference and practical demonstrations for implementing server-side logic, network programming, and system APIs. The guide specifically covers advanced technical domains including process management for scaling applications via clusters and child processes, as well as network programming for building TCP, UDP, and HTTP services. It also includes detailed instructional material on security implementation, focusing on cryptographic hashing and encryp
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Piston is a modular game engine and framework written in Rust for building two and three-dimensional graphical applications. It functions as a cross-platform windowing library and a system for managing input events and window loops across different operating systems. The project provides specialized rendering systems, including a voxel rendering engine for volumetric pixels and a skeletal animation system for deforming meshes via hierarchical bone structures. It also features an immediate mode user interface toolkit for creating responsive on-screen elements and a behavior tree AI framework t
jemalloc is a general purpose C memory allocator designed as a replacement for the standard library malloc and free functions. It is a multi-threaded allocation library that emphasizes fragmentation avoidance and scalable concurrency for high-performance applications. The project reduces lock contention by using multiple independent memory arenas and thread-local cache layers. It minimizes latency by offloading the reclamation of unused memory pages to asynchronous background threads and utilizes huge page metadata storage to reduce translation lookaside buffer misses. The system includes a
Filament is a real-time physically based rendering engine designed for high-fidelity 3D graphics. It functions as a cross-platform graphics library that provides a unified interface for rendering complex models and materials across desktop, mobile, and web environments. The engine distinguishes itself through a data-oriented architecture that optimizes memory usage and processing speed, alongside a shader-variant system that generates specialized code for specific material and lighting configurations. By abstracting diverse hardware graphics backends, it ensures consistent visual performance
Mimalloc is a general purpose dynamic memory allocator for C and C++ designed to increase execution speed and reduce fragmentation. It functions as a scalable heap manager that replaces standard library allocation functions to improve performance and memory efficiency across applications. The project distinguishes itself as both a heap security hardener and a memory corruption detector. It employs randomized allocation, encrypted free lists, and sampled guard pages to mitigate heap exploits and identify buffer overflows or use-after-free errors during runtime. The allocator provides capabili
Odin is a compiled, statically typed systems programming language designed for high-performance software development. It focuses on pragmatic low-level memory control, providing a toolset for manual memory management and precise control over hardware utilization. The language is distinguished by its flexible memory model, which includes custom allocators and precise data layout capabilities to optimize resource usage. It features a comprehensive foreign function interface for importing assembly files and linking with external libraries using configurable calling conventions. The type system
Jackson-databind is a Java serialization framework and JSON data binding library used to convert Java objects to JSON and vice versa. It functions as a JSON streaming API that generates and parses content as a sequence of tokens, and as a hierarchical data tree mapper that reads data into a node structure for dynamic modification without predefined classes. The project provides a structured mapping process to bind data to objects, allowing for the transformation of complex Java objects into data formats and the reconstruction of objects from those formats. It supports custom data format mappi
This project is an open-source 3D game engine designed for building high-fidelity games, simulations, and cinematic environments. It functions as a robotics simulation platform with native integration for ROS 2 to model robot controllers and sensors. The engine features a multi-threaded Forward+ physically based renderer that supports hardware-accelerated ray tracing and global illumination. The system is built on a modular extension architecture using Gems to add or replace features without modifying core binaries. It includes a native SDK for AWS cloud integration, enabling IAM authenticati
msgspec is a high-performance data modeling, serialization, and schema validation toolkit for Python. It serves as a type-safe serialization framework that integrates schema enforcement and data parsing into a single pass, functioning as both a data serialization library and a schema validation system based on standard Python type annotations. The project distinguishes itself through high-performance structural primitives, including compilation-based routine generation and zero-copy buffer parsing. It optimizes memory usage via garbage collection-aware layouts and reduces processing overhead
TRELLIS.2 is a generative image-to-3D system that creates high-resolution 3D assets with physically based rendering materials from 2D images. It utilizes a sparse voxel representation to handle complex topologies and internal structures without relying on iso-surface fields. The project features a structured latent space representation that maps geometry and texture attributes to maintain visual fidelity. It employs an optimization-free geometry reconstruction process to decode latent representations directly into voxel grids and includes a PBR texture generator for synthesizing base color, r
Nanopb is a lightweight C implementation of Protocol Buffers designed for resource-constrained systems and microcontrollers. It functions as both an embedded serialization library for encoding and decoding structured data and a code generator that transforms definition files into compact C source and header files. The project is distinguished by its focus on static memory allocation, using fixed maximum sizes for strings and arrays to avoid dynamic memory allocation and heap fragmentation. It employs a callback-based streaming mechanism to process messages or fields that exceed available phys
Perspective is a columnar data analytics engine and high-performance visualization component powered by WebAssembly. It provides a system for analyzing and visualizing large or streaming datasets through interactive data grids and charts, utilizing a compiled binary to achieve near-native performance within the browser. The project distinguishes itself through a WebSocket-based data streaming interface and deep Apache Arrow integration, which minimize memory overhead when synchronizing tables between servers and clients. It acts as a remote query proxy capable of translating visualization con
ExcelJS is a Node.js spreadsheet engine and manipulation library used for reading, writing, and modifying XLSX and CSV files. It functions as a formatting tool and asynchronous streaming parser for generating complex workbooks containing formulas, rich text, and custom styles. The library is distinguished by its ability to process large datasets using asynchronous data streaming and incremental processing, which minimizes memory usage during data extraction and file generation. Its capability surface covers comprehensive data management, including structured tables, named ranges, and cell da
This project is a curated educational guide and instructional resource for the Node.js runtime environment. It serves as a comprehensive introduction to core concepts, including asynchronous programming tutorials, network application primers, and guides on the module system and stream API. The material focuses on the fundamental building blocks of server-side development, specifically how to create reusable code packages and manage project dependencies via a module manifest. It provides detailed instruction on building programs that communicate over HTTP and TCP protocols to exchange data acr
EASTL is a C++ Standard Template Library implementation consisting of containers, iterators, and algorithms. It provides cross-platform data structures and a template-based algorithm library designed for use in resource-constrained game engine environments. The library focuses on game engine memory management, providing specialized utilities that ensure predictable memory allocation and high-performance access for real-time applications. These containers maintain consistent behavior across different operating systems and hardware platforms. The project covers high-performance C++ development
Kajiya is a physically based rendering engine and real-time global illumination renderer. It utilizes a GPU-accelerated path tracer to simulate real-world material properties, such as roughness and metalness, to achieve photorealistic visual results. The engine incorporates a temporal super-resolution upscaler to increase final render resolution by reconstructing images from lower-resolution internal frames. It also generates high-fidelity reference images through path-tracing to verify the visual accuracy of real-time lighting outputs. The system covers 3D scene visualization and asset mana
Bytehound is a Linux memory profiler that utilizes a custom global allocator to intercept memory requests and track allocations and deallocations. It records full call-stack traces for every memory operation to map allocations back to their originating source code. The project features a remote memory profiling system that streams capture data via network sockets to a separate machine, minimizing resource overhead on the target system. Analysis is supported by a specialized domain-specific query language used to automate the detection of memory patterns and anomalies. The tool covers heap al
JerryScript is a lightweight, ECMAScript-compliant JavaScript engine and bytecode compiler designed for resource-constrained devices. It serves as an embedded interpreter and IoT scripting runtime, enabling the execution of JavaScript code within native C applications on hardware with limited memory. The project differentiates itself through a focus on low-memory runtime management, utilizing bytecode precompilation and pre-compiled state snapshots to reduce startup time and memory overhead. It features a C-binding native bridge for bidirectional communication between native code and scripts,
c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte
PapaParse is a delimited text processing library that converts CSV files into JSON objects or arrays. It provides a suite of tools for parsing delimited text and transforming structured data objects back into CSV formats through bidirectional serialization. The library is characterized by its ability to process massive datasets using incremental streaming and chunk-based processing to prevent memory overload. It includes an automatic delimiter detector to identify separator characters without manual configuration and utilizes web workers to offload parsing logic to background threads, keeping