{"id":17535851,"url":"https://github.com/someoneserge/vizfft","last_synced_at":"2026-04-30T07:37:20.539Z","repository":{"id":78500212,"uuid":"538578078","full_name":"SomeoneSerge/vizfft","owner":"SomeoneSerge","description":"An imgui+webassembly demo visualizing the fft of a plane wave","archived":false,"fork":false,"pushed_at":"2023-02-23T19:56:18.000Z","size":50,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T03:14:23.398Z","etag":null,"topics":["eigen3","emscripten","fft2","imgui","nix","webassembly-demo","webgl"],"latest_commit_sha":null,"homepage":"https://someoneserge.github.io/vizfft/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SomeoneSerge.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":"2022-09-19T15:49:48.000Z","updated_at":"2022-10-24T20:28:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"5a525127-54fa-4731-82d7-6d4f375e3ee4","html_url":"https://github.com/SomeoneSerge/vizfft","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SomeoneSerge/vizfft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SomeoneSerge%2Fvizfft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SomeoneSerge%2Fvizfft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SomeoneSerge%2Fvizfft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SomeoneSerge%2Fvizfft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SomeoneSerge","download_url":"https://codeload.github.com/SomeoneSerge/vizfft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SomeoneSerge%2Fvizfft/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261453120,"owners_count":23160452,"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":["eigen3","emscripten","fft2","imgui","nix","webassembly-demo","webgl"],"created_at":"2024-10-20T19:44:13.736Z","updated_at":"2026-04-30T07:37:20.498Z","avatar_url":"https://github.com/SomeoneSerge.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vizfft\n\nAn imgui+webGL toy, visualizing FFT of [plane waves](https://en.wikipedia.org/wiki/Plane_wave).\n\n## Dependencies\n\n0. Get https://nixos.org/download.html (`$ sh \u003c(curl -L https://nixos.org/nix/install) --daemon`)\n1. Get https://direnv.net/\n3. Get https://github.com/nix-community/home-manager/ with `programs.direnv.enable = true` and `programs.direnv.nix-direnv.enable = true`\n4. `echo use nix \u003e .envrc`\n5. `direnv allow`\n\n## Build native\n\n```console\ncmake -B build -S . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_EMSCRIPTEN=OFF\ncmake --build build/\n```\n\n## Build WebGL\n\n\n```console\ncmake -B build -S . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON\ncmake --build build/\nnpx http-server build/ -c-1\n```\n\n\n## Roadmap\n\n- [x] [init](https://github.com/SomeoneSerge/vizfft/commit/483365f50b3272b0e3931fbc8886836cdb192c18):\n  a bunch of copy-paste to bootstrap the cmake, glfw, imgui, and emscripten trivia;\n  raii headers in their current form can obviously only be included once, or they won't link correctly\n- [x] [build](https://github.com/SomeoneSerge/vizfft/commit/58c3c47fda0d9b67f48dde7ff9b0f5fb1973bd9b) github-pages on a push to master\n- [x] [patch](https://github.com/SomeoneSerge/vizfft/commit/c382d41238fe010f74c9f0096b4cbf952bd41366) the negative DeltaTime issue in firefox\n- [x] [switch](https://github.com/SomeoneSerge/vizfft/commit/cf8b8e41959b455af689b21abc03365c7cccf309) from GLFW to SDL just to feel the difference between the APIs\n- [ ] fft in a separate thread, on a frequency lower than the framerate\n- [ ] switching between glfw/sdl via policies?\n- [ ] a shader to visualize the implicit periodic extensions of the image\n- [ ] an option to visualize an implicitly zero-padded signal\n- [ ] 1d signal\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomeoneserge%2Fvizfft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsomeoneserge%2Fvizfft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomeoneserge%2Fvizfft/lists"}