{"id":22190825,"url":"https://github.com/spicycactuar/soft-trace","last_synced_at":"2026-05-09T09:09:54.213Z","repository":{"id":265777226,"uuid":"880578626","full_name":"SpicyCactuar/soft-trace","owner":"SpicyCactuar","description":"An interactive CPU Ray Tracing application","archived":false,"fork":false,"pushed_at":"2025-02-20T23:12:21.000Z","size":100,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T20:43:01.642Z","etag":null,"topics":["computer-graphics","cpp","cpu-raytracing","glm","global-illumination","opengl","qt5"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SpicyCactuar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-10-30T01:05:53.000Z","updated_at":"2025-03-02T04:34:01.000Z","dependencies_parsed_at":"2024-11-30T22:35:14.422Z","dependency_job_id":"86bf5a25-cc30-4765-92a3-4192117e404f","html_url":"https://github.com/SpicyCactuar/soft-trace","commit_stats":null,"previous_names":["spicycactuar/soft-trace"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SpicyCactuar/soft-trace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fsoft-trace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fsoft-trace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fsoft-trace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fsoft-trace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SpicyCactuar","download_url":"https://codeload.github.com/SpicyCactuar/soft-trace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fsoft-trace/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261792299,"owners_count":23210291,"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":["computer-graphics","cpp","cpu-raytracing","glm","global-illumination","opengl","qt5"],"created_at":"2024-12-02T12:12:46.908Z","updated_at":"2026-05-09T09:09:54.141Z","avatar_url":"https://github.com/SpicyCactuar.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Soft Trace\n\n![soft-trace](https://github.com/user-attachments/assets/2e5d981c-8d5d-4b2b-bdb8-c9f5149da0f7)\n\nCPU Ray Tracing application exhibiting basic Global Illumination effects.\nThe application displays a Qt UI with two windows: the left window shows the scene rendered using OpenGL (immediate mode), while the right window displays the equivalent ray-traced scene.\n\nThe different effects are achieved by performing different ray generation + intersection + resolution strategies.\n\n## Global Illumination effects supported\n\n* Blinn-Phong shading - Affected by standard `.mtl` properties {`Ka`, `Kd`, `Ks`, `Ke`}\n* Fresnel - Controlled by custom `.mtl` property `N_ior` (see [Typical values](https://en.wikipedia.org/wiki/Refractive_index#Typical_values))\n* Reflections - Controlled by custom `.mtl` property `0 \u003c= N_mirr \u003c= 1`\n* Refractions - Controlled by custom `.mtl` property `0 \u003c= N_transp \u003c= 1`\n* Shadows - Single shadow ray test\n* Area Lights - 20 shadow samples\n* Interpolation - Render normal as `[r, g, b] = abs([n.x, n.y, n.z])`\n* Orthographic - Renders scene using Orthographic or Perspective camera\n\n## Project Structure\n\n```plaintext\nsoft-trace/\n├── src/                 # Source code\n├── assets/              # Static assets (.obj and .mtl files)\n├── soft-trace.pro       # QMake project\n└── README.md            # Project README\n```\n\n## Build\n\n```bash\nqmake\nmake\n```\n\n## Run\n\n```bash\nbin/soft-trace \u003c.obj\u003e \u003c.mtl\u003e\n```\n\nExample:\n\n```shell\nbin/soft-trace assets/cornell_box.obj assets/cornell_box.mtl\n```\n\nThe asset files must be well-formed for the application to work. See `Material.h` for custom .mtl properties used.\nExample files are provided.\n\n## Technologies\n\n* **C++**: `\u003e= C++17`\n* **Qt**: `5.12.x`\n* **OpenGL**: `\u003e= 4.0`\n* **OpenMP**: `\u003e= 4.5`\n* **GLM**: `1.0.1`\n\nNewer versions of Qt might work correctly, if no breaking changes that affect the application were introduced.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspicycactuar%2Fsoft-trace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspicycactuar%2Fsoft-trace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspicycactuar%2Fsoft-trace/lists"}