{"id":20850420,"url":"https://github.com/noteed/smallpt-hs","last_synced_at":"2026-03-11T09:02:54.592Z","repository":{"id":1061982,"uuid":"897069","full_name":"noteed/smallpt-hs","owner":"noteed","description":"A Haskell port of the C++ smallpt path tracer","archived":false,"fork":false,"pushed_at":"2020-12-14T14:25:29.000Z","size":13,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-12-08T13:46:01.158Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noteed.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}},"created_at":"2010-09-08T20:15:42.000Z","updated_at":"2025-11-21T15:58:33.000Z","dependencies_parsed_at":"2022-08-16T11:55:22.761Z","dependency_job_id":null,"html_url":"https://github.com/noteed/smallpt-hs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/noteed/smallpt-hs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noteed%2Fsmallpt-hs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noteed%2Fsmallpt-hs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noteed%2Fsmallpt-hs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noteed%2Fsmallpt-hs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noteed","download_url":"https://codeload.github.com/noteed/smallpt-hs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noteed%2Fsmallpt-hs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30376781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-11-18T03:09:25.890Z","updated_at":"2026-03-11T09:02:54.562Z","avatar_url":"https://github.com/noteed.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"smallpt-hs\n==========\n\n**Update**: [bollu](https://github.com/bollu) and\n[davean](https://github.com/davean) have made an [optmized\nversion](https://github.com/bollu/smallpt-opt).\n\nThis is a port of [smallpt](http://www.kevinbeason.com/smallpt/), a global\nillumination path tracer written in 99 lines of C++. The port is written in\n99 lines of Haskell.\n\nThere are two major differences: performance and argument parsing. The Haskell\ncode compiled with GHC 6.12.1 is about 4.5 times slower than the C++ version.\n(I only tested on my anemic Atom N450-powered netbook...) The C++ code takes an\noptional argument, which should be a integer greater than 4.\n\nGive it a spin\n--------------\n\nThe complete package contains more than the 99 lines smallpt-hs.hs file. There\nare other variants with a criterion wrapper to benchmark the code. The cbits\ndirectory contains the original smallpt.cpp file modified to be expose the main\nentry point as a C symbol callable from Haskell via FFI.\n\nEvery attempt so far use the vector package. The 99 lines file is derived from\nSmallpt/Mutable.hs. The Storable code doesn't improve the performance and is\nless convenient to use. The Unboxed code lose in performance because the Vec\ntype can't benefit from an explicit unpack pragma.\n\nIf you can make the code faster or easier to read, please let me know!\n\nLicense\n-------\n\nAlthough the LICENSE file is a BSD3 license, I should contact Kevin Beason (the\noriginal author of the C++ code) to make sure it is ok. The linked site above\nhas the original LICENSE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoteed%2Fsmallpt-hs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoteed%2Fsmallpt-hs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoteed%2Fsmallpt-hs/lists"}