{"id":15402178,"url":"https://github.com/liby99/nash","last_synced_at":"2025-10-04T07:57:20.802Z","repository":{"id":74146978,"uuid":"168500849","full_name":"Liby99/nash","owner":"Liby99","description":"Numerical Analytical Spherical Harmonics Rendering - the complete picture","archived":false,"fork":false,"pushed_at":"2019-03-31T20:01:01.000Z","size":66984,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-14T17:29:57.152Z","etag":null,"topics":[],"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/Liby99.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":"2019-01-31T09:45:19.000Z","updated_at":"2019-03-31T20:01:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"ee5166d2-e1e5-46f2-b567-1e0e731a6110","html_url":"https://github.com/Liby99/nash","commit_stats":{"total_commits":159,"total_committers":2,"mean_commits":79.5,"dds":"0.10062893081761004","last_synced_commit":"836fa5260bf1c37d61177d77cb21a01dcf2e4f98"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Liby99/nash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liby99%2Fnash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liby99%2Fnash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liby99%2Fnash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liby99%2Fnash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Liby99","download_url":"https://codeload.github.com/Liby99/nash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liby99%2Fnash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278283448,"owners_count":25961311,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"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"}},"keywords":[],"created_at":"2024-10-01T16:01:22.801Z","updated_at":"2025-10-04T07:57:20.787Z","avatar_url":"https://github.com/Liby99.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NASH: Numerical/Analytical Spherical Harmonics\n\nThis project aims to create a complete picture of all Spherical Harmonics Rendering Pipelines -\nfrom pre-calculation of spherical harmonics coefficient for meshes, environment maps and area\nlights, coefficient file formatting, storing and loading, to advanced rendering involving\nspherical harmonics as well as analytical area light lighting. Eventually this will be a\nresearch project exploring various numerical/analytical methods, their efficiency, computation\ncomplexity and visual effect.\n\nThe software infrastructure based on [nanogui](https://github.com/wjakob/nanogui) framework. We are\nalso using [assimp](https://github.com/assimp/assimp) for 3D object file loading. Make sure you have\n[cmake](https://cmake.org) (\u003e= 3.10) for building this project.\n\n## Getting Started\n\nTo build this project, you need to first clone this repository recursively.\n\n```\n$ git clone --recursive https://github.com/liby99/nash.git\n```\n\nThen you can simply type\n\n```\n$ make\n```\n\nThis will generate a directory namely `build/` and the executables will be stored respectively.\n\n### Run Tests or Applications\n\nFor example, you can do this to start running one of the app:\n\n```\n$ ./build/test/infra/viewer_with_cube\n```\n\nThen you should be seeing one cube showing inside a window.\n\nOr a simpler app:\n\n```\n$ ./build/app/sh_0000\n```\n\nYou will see the program evaluating `y_m^l(\\theta, \\phi)` for `m = 0`, `l = 0`, `\\theta = 0`, and\n`\\phi = 0`.\n\n### Building Documents\n\nMeanwhile, if you want to compile the documents (paper) involved in this project, you can type\n\n```\n$ make doc\n```\n\nto generate the pdfs under `pdf/`.\n\n## Contributing\n\n### Build Process\n\nWhen you are actively developing this project, you should be staying in `build/` and do this:\n\n```\n$ cmake ..\n$ make\n```\n\nThis will make sure every time you build it only compiles the file that is needed. Of course if you\nare not adding new files you won't need to do the `cmake ..` step.\n\n### Building Executables\n\nFor each `.cpp` file inside `app/` or `test/` folder, we will generate an executable. When acquiring\nthe header file, you just need to add this line at the beginning of the `.cpp` file:\n\n``` cpp\n#include \u003cnash/nash.h\u003e\n```\n\nMake sure you are putting the applications inside `app/` folder and testing or adhoc executables in\n`test/`. When you are building, you can disable building app or test by adding flags (suppose you\nare in `build/` directory.)\n\n```\n$ cmake .. -DNASH_BUILD_TEST=OFF\n```\n\nor\n\n```\n$ cmake .. -DNASH_BUILD_APP=OFF\n```\n\n### Documents and Latex Files\n\nIf you are adding new `.tex` file in `doc/` you will need to add that target to `Makefile`. For\nexample, if you want `make doc` to compile `doc/demo.tex`, you will need to add `demo` to the\n`DOC_TARGET` in the `Makefile`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliby99%2Fnash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliby99%2Fnash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliby99%2Fnash/lists"}