pbrt-v3
infer
pbrt-v3 | infer | |
---|---|---|
17 | 42 | |
4,828 | 14,716 | |
- | 0.3% | |
2.3 | 9.9 | |
8 months ago | 4 days ago | |
C++ | OCaml | |
BSD 2-clause "Simplified" License | MIT License |
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.
pbrt-v3
-
Ask HN: Any good books on ray tracing?
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
-
Is it possible and realistic to learn independent of an API?
Physically Based Raytracing
-
C++ Project to Put On Resume
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?
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
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
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?
- Path Tracer Project
-
Physically Based: A Database of PBR Values for Real-World Materials
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/
infer
-
An Introduction to Temporal Logic (With Applications to Concurrency Problems)
I think most development occurs on problems that can't be formally modeled anyway. Most developers work on things like, "can you add this feature to the e-commerce site? And can the pop-up be blue?" which isn't really model-able.
But that's not to say that formal methods are useless! We can still prove some interesting aspects of programs -- for example, that every lock that gets acquired later gets released. I think tools like Infer[0] could become common in the coming years.
[0]: https://fbinfer.com/
- Should I Rust or should I Go
-
Enforcing Memory Safety?
Using infer, someone else exploited null-dereference checks to introduce simple affine types in C++. Cppcheck also checks for null-dereferences. Unfortunately, that approach means that borrow-counting references have a larger sizeof than non-borrow counting references, so optimizing the count away potentially changes the semantics of a program which introduces a whole new way of writing subtly wrong code.
-
Interesting ocaml mention in buck2 by fb
Meta/Facebook are long time OCaml users, their logo is on the OCaml website. Their static analysis tool and its predecessor are both written in OCaml.
-
CISA Director Easterly's comments about cyber security. Agree or disagree?
Then this idea that the US government will tell tech companies how to write secure software. Let's get this straight, the private sector, especially big tech is miles ahead of US government in this regard. Microsoft literally invented threat modelling and modern exploit mitigations. Facebook has the best appsec processes pretty much in the whole world, including their own cutting edge code analyzer. AWS uses formal verification everywhere. Meanwhile the US government itself runs mission-critical systems that's almost literally held together by bubble gum and toothpicks. Maybe they could dial down the arrogance a tad, get their own shit together, learn how this cyber stuff is actually done and only then try lecturing everyone else.
-
A plan for cybersecurity and grid safety
Efforts: Dependabot, CodeQL, Coverity, facebook's Infer tool, etc
-
A quick look at free C++ static analysis tools
I notice there isn't fbinfer. It's pretty cool, and is used for this library.
-
silly guy
"Move fast, break stuff" is a great approach when you aren't pushing the broken bits to production. Fuck, even Facebook, the big "move fast, break stuff" company, uses tools to detect errors in its continuous integration toolchain. https://fbinfer.com/
- OCaml 5.0 Multicore is out
-
Beyond Functional Programming: The Verse Programming Language (Epic Games' new language with Simon Peyton Jones)
TBH, there's a non-zero amount of non-"ivory tower" tools you may have used that are written in functional languages. Say, Pandoc or Shellcheck are written in Haskell; Infer and Flow are written in OCaml. RabbitMQ and Whatsapp are implemented in Erlang (FB Messenger was too, originally; they switched to the C++ servers later). Twitter backend is (or was, at least) written in Scala.
What are some alternatives?
the_raytracer_challenge_repl - A WebAssembly (WASM) based REPL interface for my Raytracer Challenge in Rust project
SonarQube - Continuous Inspection
mitsuba3 - Mitsuba 3: A Retargetable Forward and Inverse Renderer
Spotbugs - SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.
odin_rosettacode - Odin examples for Rosetta Code
Error Prone - Catch common Java mistakes as compile-time errors
RiftRay - Step into the worlds of Shadertoy with an Oculus Rift.
FindBugs - The new home of the FindBugs project
tray_rust - A toy ray tracer in Rust
PMD - An extensible multilanguage static code analyzer.
RustCrypto - Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers
Checkstyle - Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.