foam3 VS pbrt-v3

Compare foam3 vs pbrt-v3 and see what are their differences.

foam3

FOAM: Feature-Oriented Active Modeller, Version 3 (unstable) (by kgrgreer)

pbrt-v3

Source code for pbrt, the renderer described in the third edition of "Physically Based Rendering: From Theory To Implementation", by Matt Pharr, Wenzel Jakob, and Greg Humphreys. (by mmp)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
foam3 pbrt-v3
4 17
39 4,826
- -
9.9 2.3
6 days ago 8 months ago
HTML C++
Apache License 2.0 BSD 2-clause "Simplified" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

foam3

Posts with mentions or reviews of foam3. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-11.
  • How could the early Unix OS comprise so few lines of code?
    3 projects | news.ycombinator.com | 11 Sep 2023
    Thank you for sharing that video! Your foam project looks fascinating too: https://github.com/kgrgreer/foam3
  • A repository of “BASIC Computer Games” code in modern languages
    3 projects | news.ycombinator.com | 31 Jul 2023
    I wrote a BASIC to JS compiler/transpiler that includes all of the programs from "BASIC Computer Games" as examples.

    You can try it out in your browser at: https://codepen.io/kgr/full/yLQyLjR

    Just select the game you want to to run from the top-left list box, then press the "Compile" button and you'll see the translated JS source in the right text-area. Then press the "Run" button to run it.

    The source code for the compiler is available at: https://github.com/kgrgreer/foam3/tree/429f2fd2b4cef0e37996a...

  • Architecture diagrams should be code
    16 projects | news.ycombinator.com | 11 Jan 2023
    Sort of related but an interesting idea is take it one step further with the Feature Oriented Active Modeler (FOAM) [1,2] paradigm and use code to model your whole system, which generates diagrams model, and runnable code in whatever language needed. The project is still young and it may not be practical today with the available tooling but it seems like a cool idea and project. It is influenced by the unix principle of “coding the perimeter not the area” which is essentially factoring your dev tasks into building NM capabilities, but instead of building NM things individually build N+M tools that can be composed into N*M capabilities [2].

    So with FOAM the idea is if we want to maintain a model of our software, and build it as well, what if we can use one composable tool to generate both, rather than model everything and code it separately.

    [1] https://github.com/kgrgreer/foam3

    [2] https://foam-framework.github.io/foam/

    [3] https://m.youtube.com/watch?v=3Ea3pkTCYx4

  • Programming Breakthroughs We Need
    17 projects | news.ycombinator.com | 17 Aug 2022
    https://github.com/kgrgreer/foam3#videos

    FOAM is a modelling framework that generates cross-language boilerplate for you, but it takes a much broader view of what constitutes boilerplate than most systems. Typically, it can generate between 95-98% of a working cross-language cross-tier system.

    FOAM helps you create features for modelled data. Features include things like a Java/Javascript/Swift classes to hold your modelled data, code to marshall to/from JSON/XML/CSV/etc., various GUI Views, and support for storing your data in various databases or file formats. However, FOAM models are themselves modelled, meaning they're afforded all of the above benefits as well. This lets you apply the MVC technique of having multiple views work against the same underlying data-model concurrently (say a grid and a pie-chart in a spreadsheet), so that you can choose the best view or views for your current need. When treated this way, your code is no longer text (but it can be, if that's one of your views), and you can easily view and store it in many different ways and more easily programmatically manipulate it.

pbrt-v3

Posts with mentions or reviews of pbrt-v3. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-15.
  • Ask HN: Any good books on ray tracing?
    1 project | news.ycombinator.com | 21 Apr 2024
    Physically Based Rendering[0] was an excellent textbook when I read it ages ago and conveniently enough it looks to have been updated with a new edition last year.

    [0]: https://pbrt.org/

  • Spectral Ray Tracing
    3 projects | news.ycombinator.com | 15 Apr 2024
  • Is it possible and realistic to learn independent of an API?
    3 projects | /r/GraphicsProgramming | 6 Dec 2023
    Physically Based Raytracing
  • C++ Project to Put On Resume
    1 project | /r/cpp_questions | 5 Jun 2023
    Both of these books are free, and both are written in C++, but they can be done in any language. The first book, a raytracer in a weekend, is part of a series, you can find it here: https://raytracing.github.io/ And, if you get to the third book in that series, or you need a reference book, the PBRT book covers the math in more depth and discusses the latest theory, you can get the last edition of the book (5 years out of date) for free though: https://pbrt.org/
  • (Why) is a toy password manager a too complex summer project?
    3 projects | /r/rust | 3 Jun 2023
    Making a “complete” one is a never-ending rabbit hole you can spend a lifetime on and is a very active area of research covering more advanced geometry, probability, optics, machine learning etc etc. A great introduction to that is https://pbrt.org
  • Suggestions for some best books on computer vision
    2 projects | /r/computervision | 2 Apr 2023
    This isn't the highest priority but if you haven't already, learn how computer graphics works. Get a working knowledge of the camera matrix, real time graphics (say, OpenGL but threeJS is an option), and photorealistic graphics. PBRT is the go-to for photorealistic graphics. The first two books of Foundations of Game Engine Development are way more useful than they have any right to be (and my favorite textbooks I've ever read, 10/10).
  • Org Mode Gripes
    6 projects | /r/emacs | 13 Feb 2023
    Org-mode strength though is in working with different languages in a same source file, which I am not sure if Knuths version does. Anyway, to see how the original idea looks like, check the Wikipedia article, or to see it in real-life see some of books that are written in the literate style, like Physically Based Rendering, which seems to be available for free nowadays or C Interfaces and Implementations.
  • Ask HN: What is the coding exercise you use to explore a new language?
    6 projects | news.ycombinator.com | 14 Sep 2022
  • Path Tracer Project
    3 projects | /r/GraphicsProgramming | 9 Sep 2022
  • Physically Based: A Database of PBR Values for Real-World Materials
    1 project | news.ycombinator.com | 21 Aug 2022
    I contributed a tiny bit to pbrt[1], and one of the things I loved was that if you just plugged in physical values you almost always got great results with minimal tweaking.

    The Octane data seems most complete at first glance (with complex IOR etc), but for things like milk and blood I expected at the very least some absorption coefficient for the translucency or similar.

    [1]: https://pbrt.org/

What are some alternatives?

When comparing foam3 and pbrt-v3 you can also consider the following projects:

xv6-public - xv6 OS

the_raytracer_challenge_repl - A WebAssembly (WASM) based REPL interface for my Raytracer Challenge in Rust project

MyDef - Programming in the next paradigm -- your way

mitsuba3 - Mitsuba 3: A Retargetable Forward and Inverse Renderer

TALA - A diagram layout engine designed specifically for software architecture diagrams

odin_rosettacode - Odin examples for Rosetta Code

C4-PlantUML - C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures

RiftRay - Step into the worlds of Shadertoy with an Oculus Rift.

basic-computer-games - An updated version of the classic "Basic Computer Games" book, with well-written examples in a variety of common MEMORY SAFE, SCRIPTING programming languages. See https://coding-horror.github.io/basic-computer-games/

tray_rust - A toy ray tracer in Rust

language-server-protocol - Defines a common protocol for language servers.

RustCrypto - Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers