# Computer graphics

Like using WebGPU (web + desktop via Tauri) & Metal (iOS) APIs.

Scratchapixel has some nice lessons.

## Notes

## Links

- Physically Based Rendering Book (Web) (V3) (V4) (Contents) (HN)
- NVIDIA GeForce RTX - Official Launch Event (2018)
- Writing to framebuffer
- GUI Development is broken (2018)
- Writing to the framebuffer (2018)
- Spectrum - Client-side image transcoding library.
- Computer Graphics Topics
- Tiny Renderer or how OpenGL works: software rendering in 500 lines of code - Brief computer graphics / rendering course. (In Rust) (HN) (Getting started) (In Rust)
- Looperepool - Tool to create looperinos.
- KABOOM! in 180 lines of bare C++ - Brief computer graphics / rendering course.
- imutils - Series of convenience functions to make basic image processing operations such as translation, rotation, resizing, skeletonization, and displaying Matplotlib images easier with OpenCV and Python.
- Cross-platform GPU fluid simulation
- Interactive Cube
- Skia - Open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms. (Code)
- Introduction to Raymarching
- 2D Graphics on Modern GPU (2019)
- Resources for Learning Graphics Programming
- Cellular Forms - Implementation of Andy Lomas' Cellular Forms.
- Physically Based Rendering - Implementation of physically based shading model & image based lighting in various graphics APIs. (Web)
- graphics-resources - Few of my bookmarks related to game development and realtime graphics programming.
- Magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. (HN)
- Pathfinder - Fast, practical, GPU-based rasterizer for fonts and vector graphics using OpenGL 3.0+, OpenGL ES 3.0+, or Metal.
- Braid - Experimental heterogeneous programming language with an application to real-time graphics. (Code)
- SwiftShader - High-performance CPU-based implementation of the Vulkan, OpenGL ES, and Direct3D 9 graphics APIs.
- Thoughts on software rendering (2020)
- Notes on linear transformations (2020)
- Collision detection: article series (2018) (HN)
- Learning Modern 3D Graphics Programming (Code) (HN)
- light2d - Light rendering in 2D.
- Seamless, static, 3D mesh multi-texturer
- Aliasing in computer graphics (2020)
- 3D Reaction-Diffusion
- NeRF: Neural Radiance Fields - Tensorflow implementation of optimizing a neural representation for a single scene and rendering new views. (Web)
- A thoroughly modern particle system (2009) (HN)
- Stanford Interactive Computer Graphics (2020) (Code)
- Klein - Specialized SIMD Geometric Algebra Library.
- Basic Skeletal Animation with Geometric Algebra (HN)
- MIT Computer Graphics course (2012)
- Neural Point-Based Graphics
- V-HACD - Decomposes a 3D surface into a set of "near" convex parts.
- Geometric Algebra for Computer Graphics (2019) (HN)
- Graphics Gems books (Code)
- Real-Time Rendering Resources (Code)
- Eric Haines courses/research
- Accurate geometric camera calibration
- rs_pbrt - Rust crate to implement at least parts of the PBRT book's C++ code.
- Stippling and Blue Noise (2011)
- MeshLab - Open source, portable, and extensible system for the processing and editing of unstructured large 3D triangular meshes.
- Visual Computing Lab
- Silhouette Maps for Improved Texture Magnification (2004) (Tweet)
- gltf-viewer - Rust glTF 2.0 viewer, written using the gltf crate and plain OpenGL.
- gltf-loader-ts - Engine-agnostic glTF 2.0 loader in TypeScript.
- Principles of Lighting and Rendering with John Carmack (2013)
- Wave Simulator - Graphical 3D simulation of the wave and heat equations. (Code)
- Probulator - Experimentation framework for probe-based lighting.
- librush - Graphics prototyping framework. (Examples)
- High-Performance MLS-MPM Solver with Cutting and Coupling
- Computer Graphics course by Keenan Crane (2020)
- How 3D video games do graphics (2020) (Reddit)
- The Physics of Light and Rendering - John Carmack (2013)
- Computer Graphics from Scratch (Web) (HN) (HN 2) (TOC) (HN)
- Online path sampling control with progressive spatio-temporal filtering (2020) (Twitter)
- A sort-middle architecture for 2D graphics (2020)
- Journal of Computer Graphics Techniques
- A Massive Fractal in Days, Not Years (2020)
- Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)
- Graphics Study: Red Dead Redemption 2 (2020)
- Re-stacking the GUI stack (2020) (Lobsters)
- Alpha Waves was the first 3D platform game (2020) (HN)
- Lights and Shadows (2020) (HN)
- Can’t Invert the CDF? The Triangle-Cut Parameterization of the Region under the Curve (2020) (Talk)
- Coding Adventure: Portals (2020)
- Computation graphs and graph computation (2020) (Lobsters) (HN)
- Graphics Programming Projects
- Motion Capture from Internet Videos (2020)
- SPIR-V - Binary intermediate language for representing graphical-shader stages and compute kernels for multiple Khronos APIs, including OpenCL, OpenGL, and Vulkan.
- SPIRV-Cross - Tool designed for parsing and converting SPIR-V to other shader languages.
- Low Level Graphics Library (LLGL) - Abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal.
- Band-Limiting Procedural Textures (2020)
- The compositor causes problems and leads to complexity (2020) (HN)
- Rendering the Hellscape of Doom Eternal (2020)
- Introduction to Computer Graphics (2018) (HN)
- Ray Marching Soft Shadows in 2D (2020) (HN)
- The polygons of DOOM: PSX (2020)
- A trip through the Graphics Pipeline 2011 (HN)
- Fooling Around with Foveated Rendering (2020) (HN)
- "Panini projection", probably used by the Baroque painters, allows us to render images with wide field-of-vision (here 170°) more nicely than the usual perspective
- HDRI Haven - 100% Free High Quality HDRIs for Everyone.
- TwinklebearDev SDL 2.0 Tutorial (Code)
- Will Usher's research
- Graphics Samples of Jiayin Cao
- Jiayin Cao Graphics Notes Blog
- Text layout is a loose hierarchy of segmentation (2020) (HN)
- Bundler - Bundler Structure from Motion Toolkit.
- CMU Computer Graphics course (2020) (Exams) (Tweet)
- Nvdiffrast - Modular Primitives for High-Performance Differentiable Rendering.
- Mesa - 3D Graphics Library. (Web)
- A Comparison of Modern Graphics APIs (2020)
- Fluid Engine Dev - Jet - Fluid simulation engine SDK for computer graphics applications. (Web)
- meshoptimizer - Mesh optimization library that makes meshes smaller and faster to render.
- Mitsuba 2: Retargetable Forward and Inverse Renderer (Differentiable Renderer) (HN)
- RGL: Realistic Graphics Lab
- Eight Years at Roblox (2020) (HN)
- Mitsuba Renderer 2 - Research-oriented rendering system written in portable C++17.
- Painting a Selfie Girl, with Maths (2020)
- Building an artificial sun that looks unbelievably realistic (2020)
- Computer Graphics at Stanford University
- Wojciech Jarosz Bibliography - Publications mostly in computer graphics, rendering, transport theory, and statistics.
- OpenImageIO - Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.
- Deep Learning Medical Decathlon Demos for Python
- Computer Animation and Simulation (2020)
- Blend2D - 2D Vector Graphics Powered by a JIT Compiler. (Web)
- GLFW - Multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input. (Code)
- Hallucinations re: the rendering of Cyberpunk 2077 (2020) (HN)
- Why are video games graphics challenging? Productionizing rendering algorithms (2020) (HN)
- Universal Scene Description (USD) - Efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications. (Code)
- Pixar Graphics Technologies (GitHub)
- Introduction to Computer Graphics (2020) (Assignments) (Tweet)
- Pixar's Render Farm (2021) (HN)
- Graphics Studies Compilation (2020)
- Smooth Voxel Terrain (2012) (HN)
- Michael Abrash's Graphics Programming Black Book
- Instant Meshes - Interactive field-aligned mesh generator.
- Graphics in Overlapping Bitmap Layers (1983)
- Graphics Programming Weekly (HN)
- Ask HN: How to self-learn graphics programming? (2021)
- A Guide to the Graphics of the Sega Mega Drive / Genesis
- Computing gradients on grids of pixels and voxels – forward, central, and… diagonal differences (2021)
- It's raymarching march (2021)
- Fitting cubic Bézier curves (2021)
- PlenOctrees for Real-time Rendering of Neural Radiance Fields (Code) (HN) (Talk)
- Understanding and Extending Neural Radiance Fields (Jonathan T. Barron) (2020)
- Rendering large 3D tilemaps with a single draw call at 3000 FPS (2021)
- Example-based texture synthesis written in Rust
- A Pixel Is Not a Little Square (1995) (HN)
- Film simulations from scratch using Python (2021)
- Computer Graphics Papers Parody
- Sharper Mipmapping using Shader Based Supersampling (2019)
- Graphics Pipelines for Young Bloods (2021) (HN)
- 125 Artists Create Unique Renders From a Simple Prompt (2020)
- A Macro View of Nanite (2021) (HN)
- Rotations with quaternions (2021)
- Implementing strict three-point perspective (HN)
- IconVG - Compact, binary format for simple vector graphics. (HN)
- Asymptote - 2D & 3D TeX-Aware Vector Graphics Language. (Web)
- three-d - Renderer written in Rust which compiles to both desktop (OpenGL) and web (WebAssembly + WebGL)..
- Top 100 3D Renders from the Internet's Largest CG Challenge | Alternate Realities (2021)
- ThorVG - Platform-independent portable library for drawing vector-based scenes and animations. (Web)
- NVIDIA Canvas - Turn Simple Brushstrokes into Realistic Images. (HN) (Article)
- How do games render their scenes? (2021)
- Visibility Buffer Rendering with Material Graphs (2021)
- Smoothstep Integral (HN)
- Rendering 1M+ Particles (2021) - Using Points and Shaders.
- Incoherent-Light-Simulation - Research simulation of the propagation of incoherent light, aiming to illustrate the concept of spatial coherence.
- RGBFAQ - Documentary about synthetic data, simulations and computer graphics.
- Global Illumination - What It Is, How Does It Work And Why Do We Need It? (2021) (Tweet)
- Real-Time Shading with Polyhedral Lights using Silhouette Detection
- Pixar cofounder Alvy Ray Smith on ‘A Biography of the Pixel’ (2021)
- Surface Multigrid via Intrinsic Prolongation (Code)
- Neural Subdivision - Novel framework for data-driven coarse-to-fine geometry modeling. (Code)
- An Introduction to Deep Learning on Meshes (Tutorials)
- NPMs: Neural Parametric Models for 3D Deformable Shapes (Code)
- Chaikin’s Algorithm: Drawing Curves (2021) (HN)
- A Practical Model for Subsurface Light Transport
- Scratchapixel - Learn Computer Graphics From Scratch. (Code)
- Graphics Workshop - Learn computer graphics by writing GPU shaders.
- MaterialX - Open standard for transfer of rich material and look-development content between applications and renderers. (Web)
- Appearance-Driven Automatic 3D Model Simplification (2021) (Code)
- How to make simple water graphics
- Awesome Fluid Dynamics
- ReactCasting - Raycasting algorithm that renders pseudo 3D scene in HTML using React (no canvas) and renders as text in textarea or console.
- Exponential Map, Angle Axis, and Angular Velocity (2021)
- Visualizing Rotation Spaces (2021)
- Learned Motion Matching (2020)
- Swapchains and Frame Pacing (2021) (HN)
- Graphics Programming Resources List
- Graphics Programming Virtual Meetup Meeting Notes
- Graphics Programming Virtual Meetup (Discord) (Twitter)
- Unbiased Emission and Scattering Importance Sampling For Heterogeneous Volumes (2021) (Article)
- Takua Renderer - Physically-based photorealistic global illumination renderer. (Porting Takua Renderer to 64-bit ARM) (Shadow Terminator in Takua)
- Magic Shop RenderMan Art Challenge (2021)
- Raya and the Last Dragon (2021)
- Shipshape RenderMan Art Challenge (2020)
- Can Data Die? Tracking the Lenna Image (2021)
- Curves and Surfaces (2021) (HN) (Tweet)
- OctaneRender - Fastest unbiased, spectrally correct GPU render engine, delivering quality and speed.
- OTOY - Future of holographic rendering is in the cloud. (Twitter)
- NAP Framework - Open source, low overhead, real-time control & visualization platform. (Code)
- Awesome Point Cloud Analysis
- Adventures in Hybrid Rendering
- Retro Synthwave - Giving a 2D grid a 3D look. (HN)
- Good Graphics - Artistic practice of Romello Goodman.
- FNA3D - 3D Graphics Library for FNA. (Web)
- Universal Volumetric - Free, fast, cross-platform volumetric codec for everyone.
- Text2Mesh Text-Driven Neural Stylization for Meshes (2021) (Code)
- Building a PS1 style retro 3D renderer (2021) (HN)
- Model Synthesis - Model synthesis is a technique for generating 2D and 3D shapes from examples. (Web)
- PyVista - 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK). (Docs)
- How to Draw S-Curved Arrows Between Boxes / Rectangles (2021) (HN)
- A Meta-er-verse (2021)
- Finding Your Home in Game Graphics Programming (HN)
- Distance, Time-of-Impact, and Closest-Point-of-Approach between Convex 2D Shapes
- Signed Distance Field (SDF) Resources
- Journal of Graphics Tools
- Awesome Voxel
- nsdf
- The Fastest GIF Does Not Exist (2022) (HN) (Reddit)
- Collision Detection Book (Code)
- 4 Ways to Create a Mesh for a Sphere
- Exposure Fusion – local tonemapping for real-time rendering (2022)
- Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012)
- Computer Graphics : Spring 2022
- Scotty3D - 3D graphics software package includes components for interactive mesh editing, realistic path tracing, and dynamic animation.
- Glad - Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs. (Code)
- Why are 2D vector graphics so much harder than 3D? (2019) (HN)
- Neural Volumes: Learning Dynamic Renderable Volumes from Images (2019) (Code)
- Graphics Developer Roadmap
- 7GUIs - Reflect as many typical (or fundamental or representative) challenges in GUI programming as possible. (HN)
- Xilem: an architecture for UI in Rust (2022) (HN) (Lobsters)
- Differentiable Signed Distance Function Rendering (2022) (HN) (Code)
- Real-Time Polygonal-Light Shading with Linearly Transformed Cosines (Code)
- Multi-platform experiments in framebuffer drawing performance (2021)
- Basic fact all graphics coders should know
- Interactive Surface Flow in Taichi
- Visualizing Delaunay Triangulation (2022)
- stdg - 2D graphics in any programming language with just print statements.
- Hex-Tiling Demo
- KTX (Khronos Texture) - Lightweight container for textures for OpenGL, Vulkan and other GPU APIs.
- Mitsuba 3 - Retargetable Forward and Inverse Renderer. (Web)
- 3D Formats Guidelines - Guidelines for artists and developers using Khronos Group 3D formats.
- Interpolating Polygons (2017)
- A simple texture atlas packing algorithm (2022)
- A better point light attenuation function (2022)
- Compute shaders in graphics: Gaussian blur (2022)
- Physically Based - PBR values database.
- MantaRay - Open source physically based renderer.
- LZ_XOR (2022) (HN)
- Compressing global illumination with neural networks (2022)
- VoxelChain - Create interactive voxel worlds in the browser. (HN)
- Parallel Curves of Cubic Béziers (2022) (HN)
- Algebraic Geometry for Computer Graphics (HN)
- Rendu - Simple real time graphics playground for experimentations.
- Grid parts and relationships
- FluidX3D - Fastest and most memory efficient lattice Boltzmann CFD software, running on any GPU via OpenCL.
- Metaballs (2017) (Lobsters)
- LuisaCompute - High-performance cross-platform computing framework for graphics and beyond.
- Sparse Voxel Octrees - CPU Sparse Voxel Octree Implementation.
- Rust Sloth - 3D software rasterizer for the terminal.
- Irradiance Caching – Part 1
- more.graphics - Your Unique and Free Generator Tools in One Place.
- The Continuity of Splines (2022) (HN)
- Tool to create videos of particles or waves in different 2D domains
- How to draw ugly lines fast (HN)
- Mixture of Volumetric Primitives for Efficient Neural Rendering (2021) (Code)
- B-Spline-Curve-Editor - Online tool to edit B Splines written in WebGL.
- glTF Sample Models
- appleseed - Modern open source rendering engine for animation and visual effects. (Web)
- Ask HN: What software was used to make 90s cutscenes? (2023)
- Mesh Processing Resources
- Rendering in Camera Space(ish) (2018)
- Teardown Frame Teardown (2023)
- Tangent Spaces and Diamond Encoding (2023)
- RenderDoc - Stand-alone graphics debugging tool.
- Generative Modelling of BRDF Textures from Flash Images (2021) (Code)
- Render engine for NeRFs
- Quine - Graphics experiments in Haskell.
- Computer Graphics and Computer Animation: A Retrospective Overview (HN)
- Polymer - Graphics + interaction engine.
- Every Graphics at Once: Nintendo's Popeye (2023) (HN)
- SDF Viewer - Fast and cross-platform Signed Distance Function (SDF) viewer, easily integrated with your SDF library.
- These Are Not Pixels: Revisited (2018)
- 3dfx: So powerful it’s kind of ridiculous (2023) (HN)
- An Engine For An Editor (2023) (Lobsters)
- The water technology behind Avatar: The Way of Water (2023) (HN)
- Taichi NGP Renderer - Instants-NGP renderer implemented using Taichi.
- apitrace - Tools for tracing OpenGL, Direct3D, and other graphics APIs.
- StratusGFX - Open-source real-time 3D rendering engine. (HN)
- texturize - Generate photo-realistic textures based on source images or (soon) PBR materials.
- A Generalized Ray Formulation For Wave-Optics Rendering (2023)
- Falcor - Real-Time Rendering Framework.
- Simplifying Bézier paths (2023)
- The Next Generation in Graphics, Part 1: Three Dimensions in Software (2023) (HN)
- Fine-grained backface culling (2023)
- A Detailed Look Into The Making of Tron Legacy VFX (HN)
- Computer Graphics Papers
- ThreeStudio - Unified framework for 3D content generation.
- Pixar technical library
- Skybox AI
- Video-LLaMA - Instruction-Finetuned Visual Language Model for Video Understanding.
- Xilem Vector Graphics (2023) (HN)
- Make Your Renders Unnecessarily Complicated (2023)
- Meta releases Intermediate Graphics Library (2023) (HN)
- Sub-pixel Distance Transform (2023) (Lobsters)
- Pixar, Adobe, Apple, Autodesk, and Nvidia form alliance for OpenUSD (2023) (HN)
- Cloth Simulation (HN)
- G9.js - Automatically Interactive Graphics. (Docs) (HN)
- The art of the (sub-)pixel (2023) (Lobsters)
- Advances in Real-Time Rendering (2023)
- Real-time Trumpet Simulation (2023)
- New Bézier curves for vector graphics (HN)