{"id":17658657,"url":"https://github.com/ruuda/convector","last_synced_at":"2025-05-07T09:42:45.918Z","repository":{"id":66191223,"uuid":"58473454","full_name":"ruuda/convector","owner":"ruuda","description":"Interactive CPU path tracer","archived":false,"fork":false,"pushed_at":"2018-07-19T20:41:55.000Z","size":6186,"stargazers_count":45,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-19T20:53:57.468Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruuda.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-10T15:37:17.000Z","updated_at":"2025-02-25T19:42:04.000Z","dependencies_parsed_at":"2023-03-06T20:30:59.005Z","dependency_job_id":null,"html_url":"https://github.com/ruuda/convector","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fconvector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fconvector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fconvector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Fconvector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruuda","download_url":"https://codeload.github.com/ruuda/convector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252852574,"owners_count":21814382,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-23T15:28:01.225Z","updated_at":"2025-05-07T09:42:45.912Z","avatar_url":"https://github.com/ruuda.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Convector\n=========\n\nInteractive CPU path tracer.\n\n[![Build Status][ci-img]][ci]\n\nOn the left: interactive mode, running at about 10 fps on my machine. On the\nright: accumulative mode, after rendering for a few minutes.\n\n| ![Interactive][interactive] | ![Accumulative][accumulative] |\n|-----------------------------|-------------------------------|\n\nRequirements\n------------\n\nHardware: a CPU that supports the AVX instructions is required. In practice this\nmeans Sandy Bridge or later. FMA instructions can be taken advantage of too,\nthose are Haswell or later.\n\nSoftware: a recent nightly version of the\n[Rust programming language](https://rust-lang.org) is required. Version 1.10 is\nrecommended. On Windows you need the version with the MSVC ABI.\n\nCompiling and Running\n---------------------\n\n * `cargo run --release` to build and run the release executable.\n * `cargo build --release` to build in release mode without running.\n * `cargo bench` to build and run all benchmarks in release mode.\n * `cargo test` to build and run all tests in debug mode.\n\nIf you do not want to use the FMA instructions, remove the `+fma` from the\ncodegen options in `.cargo/config`.\n\nControls\n--------\n\n * Press `b` to toggle blending recent frames.\n * Press `d` to toggle debug view.\n   The green channel shows the number of primary AABB intersections,\n   the blue channel shows the number of primary triangle intersections.\n * Press `m` to toggle the median filter for noise reduction.\n * Press `q` to quit the application.\n * Press `r` to switch between realtime and accumulative rendering.\n * Press `s` to print statistics to the console.\n * Press `t` to write a trace to trace.json.\n   It can be opened with Chrome by going to chrome://tracing.\n\nAbout the code\n--------------\n\nMany structs represent eight instances at once for SIMD. In that case the name\nhas been prefixed with `M` (for “multi”). The single-instance struct types have\nthe prefix `S` instead (for “single”).\n\nThe most interesting stuff is in `src/triangle.rs`, `src/material.rs`,\nand `src/renderer.rs`, and `src/bvh.rs`. Shaders are in `src/gpu`.\n\nLicense\n-------\n\nConvector is free software. It is licensed under the\n[GNU General Public License][gplv3], version 3.\n\n[gplv3]:        https://www.gnu.org/licenses/gpl-3.0.html\n[interactive]:  https://raw.githubusercontent.com/ruuda/convector/master/screenshots/interactive.png\n[accumulative]: https://raw.githubusercontent.com/ruuda/convector/master/screenshots/accumulative.png\n[ci-img]:       https://ci.appveyor.com/api/projects/status/nkqhoi829382i1ow?svg=true\n[ci]:           https://ci.appveyor.com/project/ruuda/convector\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruuda%2Fconvector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruuda%2Fconvector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruuda%2Fconvector/lists"}