Skip to content

jslee02/awesome-projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Awesome Projects

A curated list of awesome projects from my experience

Table of Contents

Libraries

Benchmark / Profile

  • easy_profiler (github easy_profiler) - Lightweight cross-platform profiler library for C++.
  • microprofile (github microprofile) - An embeddable profiler.
  • Optick (github bombomby/optick) - C++ Profiler For Games.
  • Orbit (github google/orbit) - A standalone profiler and debugging tool for Windows and Linux.
  • Remotery (github Remotery) - Realtime CPU/D3D/OpenGL/CUDA/Metal Profiler in a single C file with web browser viewer.
  • semile (github semile) - A profiling framework provides the ability to monitor programs, in general of any programming language with (1) consumed time per execution and (2) 'footprint' message per execution
  • Tracy Profiler (github wolfpld/tracy) - A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications.

Math

  • Blaze (bitbucket) - An open-soure, high-performance C++ math library for dense and sparse arithmetic.
  • CGAL (github CGAL/cgal - A software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library.
  • Eigen (bitbucket) - A C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • Elemental (github elemental/Elemental) - A modern C++ library for distributed-memory dense and sparse-direct linear algebra and optimization which supports a wide range of functionality not available elsewhere.
  • libigl (github libigl/libigl) - A simple C++ geometry processing library.
  • MathFu (github google/mathfu) - C++ math library developed primarily for games focused on simplicity and efficiency.
  • MathGeoLib (github juj/MathGeoLib) - A C++ library for linear algebra and geometry manipulation for computer graphics.
  • mgcpp (github MGfoundation/mgcpp) - A CUDA based C++ linear algebra library.
  • SymEngine (github symengine) - A fast symbolic manipulation library written in C++.
  • xtensor (github QuantStack/xtensor) - A C++ library meant for numerical analysis with multi-dimensional array expressions.

Deformable object simulation

  • MFEM (github mfem/mfem) - A free, lightweight, scalable C++ library for finite element methods.
  • Vega FEM - A computationally efficient and stable C/C++ physics library for three-dimensional deformable object simulation.

Machine Learning

  • NN++ (github) - A small and easy to use neural net implementation for C++.

SIMD

  • Enoki (github mitsuba-renderer/enoki) - Structured vectorization and differentiation on modern processor architectures
  • Dr.Jit (github mitsuba-renderer/drjit) - Successor of Enoki. A Just-In-Time-Compiler for Differentiable Rendering.
  • EVE (github jfalcou/eve) - Expressive vector engine
  • libsimdpp (github libsimdpp) - Header-only zero-overhead C++ wrapper for SIMD intrinsics of multiple instruction sets.
  • Vc (github Vc) - SIMD Vector Classes for C++
  • xsimd (github QuantStack/xsimd) - C++ wrappers for SIMD intrinsics

SIMD Papers

  • An evaluation of current SIMD programming models for C++ (2016) (pdf)

OpenCL - Wrappers

  • Chlorine (github Polytonic/Chlorine) - Dead Simple OpenCL (Compute).
  • Boost.Compute (github boostorg/compute) - A C++ GPU Computing Library for OpenCL.
  • EasyCL (github hughperkins/EasyCL) - Easy to run kernels using OpenCL
  • EasyOpenCL (github Gladdy/EasyOpenCL) - The easiest way to get started with OpenCL!
  • VexCL (github ddemidov/vexcl) - VexCL is a C++ vector expression template library for OpenCL/CUDA.

OpenCL - Applications

  • Bullet (github) - Real-Time Physics Simulation (Bullet 3 includes the optional work-in-progress GPU pipeline.)
  • DeepCL (github) - OpenCL library to train deep convolutional neural networks.
  • libclsph (github) - OpenCL based GPU accelerated SPH fluid simulation library.
  • OpenCL-caffe (github) - OpenCL version of caffe developed by AMD research lab.

Meta Programming

  • Brigand (github) - A light-weight, fully functional, instant-compile time C++ 11 meta-programming library.
  • Metal (github) - A portable header-only C++14 library designed to make template metaprogramming enjoyable.

IO

  • cereal (github cereal) - A C++11 library for serialization
  • cista (github felixguendling/cista) - Ssimple, high-performance, zero-copy C++ serialization & reflection library

Graphics

  • bgfx (github ⭐ 1.9k) - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
    • fips-bgfx (github) - fipsified version of bgfx (CMake support)
  • Magnum (github ⭐ 0.7k) - C++11/C++14 and OpenGL graphics engine.
  • nanovg (github) - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
  • OpenSceneGraph (github ⭐ 0.5k) - An open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.
  • Urho3D (github ⭐ 1.1k) - A free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license.
  • VisualizationLibrary (github ⭐ 36) - A lightweight C++ OpenGL middleware for 2D/3D graphics.
2d Image Processing
  • guetzli (github guetzli) - A JPEG encoder that aims for excellent compression density at high visual quality.

Game Engine

GUI

  • glfw (github ⭐ 1.9k) - A multi-platform library for OpenGL, window and input.
  • im3d (github john-chapman/im3d) - Immediate mode rendering and 3d gizmos.
  • imgui (github imgui) - Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.
    • ImGui Addons (github Flix01/imgui) - A collection of "extra imgui widgets"
    • ImWindow (github) - Window and GUI system based on ImGui from OCornut.
  • NanoGUI (github ⭐ 0.6k) - A minimalistic cross-platform widget library for OpenGL 3.x.
  • Nuklear (github nuklear) - A minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain.

Logging

  • Loguru (github imgui) - A header-only C++ logging library.
  • spdlog (github imgui) - Very fast, header only, C++ logging library.

Signal

  • wigwag (github) - C++ signals library.

Test

  • Catch - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD
  • doctest (github) - The lightest feature rich C++ single header testing framework for unit tests and TDD.
  • Google Test

Python binding

  • pybind11 (github) - Seamless operability between C++11 and Python.

Memory Allocator

  • memory - STL compatible C++ memory allocator library [github foonathan/memory]
  • memory-allocators - Custom memory allocators in C++ to improve the performance of dynamic memory allocation [github mtrebi/memory-allocators]

Entity Component System

Code

  • ECS - C++ header-only type-safe entity component system library [github redxdev/ECS]

Articles

  • Entity Component Systems & Data Oriented Design [slides]

ETC

  • args (github args) - A simple header-only C++ argument parser library.
  • FreeCAD (github FreeCAD) - A general purpose feature-based, parametric 3D modeler for CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and product design but also fits a wider range of uses in engineering, such as architecture or other engineering specialties.
  • rang (github rang) - A Minimal, Header only Modern c++ library for colors in your terminal
  • reflang (github rang) - A reflection library & tool for modern C++. The tool parses your C++ code using libclang, then generates human-readable code around it to enable reflection.

Software / Web Service

Development

  • cloc - cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.
  • COVERALLS - Test Coverage History & Statistics.
  • Coverity - Software testing and static analysis tools
  • Cppcheck
  • Reviewable - Github Code review assistant.

Code Formatter

  • Uncrustify (github) - Source Code Beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA

Git/Mercurial

GUI client

Utilities

Package managers

  • vcpkg - A package manager for Windows built by Microsoft.

ETC

C++ References / Guidelines

Other Awesome Lists


License

CC0

About

😎 A curated list of awesome projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published