{"id":173275,"name":"csg","ecosystem":"hackage","description":"\n\n[Last Documentation]\n\nUse triples of Doubles to represent vectors (slower with vector library arrays)\n\nUse -f \u003cflag\u003e to enable a flag, or -f -\u003cflag\u003e to disable that flag. More info\n\nPackage maintainers\n\nFor package maintainers and hackage trustees\n\nCandidates\n\n\n\n\n\n\n\nCSG is a constructive solid geometry library with support\nfor ray casting. CSG allows you to define a complex solid as a\ncomposition of primitives. It also provides functions to perform ray\ncasting (find an intersection of a ray and the defined solid) or test\nwhether a point belongs to the solid (for Monte Carlo volume\ncalculation).\n\nPlease consult the Hackage page for csg\nfor full documentation.\n\nBy default csg is built using CVec3 from simple-vec3 to\nrepresent vectors and points, which according to benchmarks shows\nbetter performance with Unboxed and Storable vectors. Build csg with\ntriples flag to use (Double, Double, Double) instead which may be\na more convenient programmatic interface that needs no\nfromXYZ/toXYZ.\n\nSee alternatives too.\n\nThe package also includes csg-raycaster executable, which is a\nsimple interactive GUI for the ray casting algorithm.\n\ncsg-raycaster takes a geometry defintion file as input. See\ncube.geo:\n\nPlease consult the Hackage page for Data.CSG.Parser for\nfull format specification.\n\ncsg-raycaster may be run as\n\nRun as csg-raycaster --help to see all options.\n\n\n\nWhen run without a file argument, csg-raycaster will try to display\nan arbitrary CSG solid.\n\nIn the GUI window the following controls are supported:\n\ncsg library performs no surface interpolation when doing ray casting.\nInstead, we only solve ray-surface intersection equation numerically.\nThe library was written with Repa/vector compatibility and performance\nin mind.\n\nThere're other Haskell libraries for CSG:\n\nGlomeTrace:\n\nHas more ray tracing-specific features, such as light sources,\ndifferent textures and materials.\n\nUnlike csg, has no tests or benchmarks.\n\nIn csg solids use the same type as opposed to different types\nwith an existential box in GlomeTrace.\n\nimplicit:\n\nOffers a much richer operation set.\n\nUses function representation for CSG solids.\n\nIf implicit had ray-casting support in early 2012 then I\nprobably wouldn't write csg.\n\nmecha:\n\nOnly provides types and functions to define solids and export\ndefinitions to external formats.\n\nNo support for ray casting.","homepage":"https://github.com/dzhus/csg#readme","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/dzhus/csg","keywords_array":["bsd3","graphics","library","program","Propose Tags"],"namespace":null,"versions_count":7,"first_release_published_at":"2018-03-20T00:21:47.000Z","latest_release_published_at":"2019-01-18T14:21:43.000Z","latest_release_number":"0.1.0.6","last_synced_at":"2026-08-25T16:07:13.778Z","created_at":"2022-04-05T18:58:18.018Z","updated_at":"2026-08-25T16:07:13.778Z","registry_url":"https://hackage.haskell.org/package/csg","install_command":"cabal install csg","documentation_url":null,"metadata":{},"repo_metadata":{"id":6731278,"uuid":"7977272","full_name":"dzhus/csg","owner":"dzhus","description":"Analytical CSG (Constructive Solid Geometry) library","archived":false,"fork":false,"pushed_at":"2024-04-25T21:36:29.000Z","size":517,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-12-07T22:03:03.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://hackage.haskell.org/package/csg","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/dzhus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-02-02T15:09:21.000Z","updated_at":"2025-02-06T21:18:16.000Z","dependencies_parsed_at":"2025-10-29T13:31:20.758Z","dependency_job_id":null,"html_url":"https://github.com/dzhus/csg","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/dzhus/csg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dzhus","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32675266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"online","status_checked_at":"2026-05-06T02:00:08.308Z","response_time":117,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"},"tags":[{"name":"0.1.0.6","sha":"ae8b7f4840086feff2c40cfd15fb7e4b9ef50b24","kind":"commit","published_at":"2019-01-18T12:08:32.000Z","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/0.1.0.6","html_url":"https://github.com/dzhus/csg/releases/tag/0.1.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/dzhus/csg@0.1.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.6/manifests"},{"name":"0.1.0.5","sha":"efd5d96922c70bd8d1d22918440c2f45df17c302","kind":"commit","published_at":"2018-08-20T09:47:45.000Z","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/0.1.0.5","html_url":"https://github.com/dzhus/csg/releases/tag/0.1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/dzhus/csg@0.1.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.5/manifests"},{"name":"0.1.0.4","sha":"57d1eb87ba34cc5c781792390cb5b02870480aff","kind":"commit","published_at":"2018-07-16T10:49:58.000Z","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/0.1.0.4","html_url":"https://github.com/dzhus/csg/releases/tag/0.1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/dzhus/csg@0.1.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.4/manifests"},{"name":"0.1.0.3","sha":"64ffb642e9656c3a80fd42cbff8b8f7c40ad5b72","kind":"commit","published_at":"2018-06-30T09:23:01.000Z","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/0.1.0.3","html_url":"https://github.com/dzhus/csg/releases/tag/0.1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/dzhus/csg@0.1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.3/manifests"},{"name":"0.1.0.2","sha":"64c9a082c39e6620450443446885b9f2a57be493","kind":"commit","published_at":"2018-05-12T10:52:17.000Z","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/0.1.0.2","html_url":"https://github.com/dzhus/csg/releases/tag/0.1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/dzhus/csg@0.1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.2/manifests"},{"name":"0.1.0.1","sha":"c1dab8e574598847381209abf4b18ea5002ce58b","kind":"commit","published_at":"2018-05-11T08:57:03.000Z","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/0.1.0.1","html_url":"https://github.com/dzhus/csg/releases/tag/0.1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/dzhus/csg@0.1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1.0.1/manifests"},{"name":"0.1","sha":"512c7124ee8bd8dd9980da0145bc15b95bbc1029","kind":"commit","published_at":"2018-03-20T00:12:41.000Z","download_url":"https://codeload.github.com/dzhus/csg/tar.gz/0.1","html_url":"https://github.com/dzhus/csg/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/dzhus/csg@0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2026-07-21T20:25:54.594Z","dependent_packages_count":0,"downloads":3861,"downloads_period":"total","dependent_repos_count":4,"rankings":{"downloads":37.52423309385335,"dependent_repos_count":26.964306078230127,"dependent_packages_count":19.055764625384878,"stargazers_count":27.123959402440416,"forks_count":37.06808073896681,"docker_downloads_count":null,"average":29.547268787775117},"purl":"pkg:hackage/csg","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hackage/csg","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hackage/csg","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hackage/csg/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-07-23T06:04:39.863Z","issues_count":1,"pull_requests_count":0,"avg_time_to_close_issue":26.0,"avg_time_to_close_pull_request":null,"issues_closed_count":1,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":1,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzhus%2Fcsg/issues","maintainers":[{"login":"dzhus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dzhus"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/csg/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/csg/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/csg/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/csg/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/csg/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/csg/codemeta","maintainers":[{"uuid":"DmitryDzhus","login":"DmitryDzhus","name":null,"email":null,"url":null,"packages_count":13,"html_url":"https://hackage.haskell.org/user/DmitryDzhus","role":null,"created_at":"2022-11-14T17:11:41.254Z","updated_at":"2022-11-14T17:11:41.254Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/DmitryDzhus/packages"}]}