{"id":20279220,"url":"https://github.com/peterhellberg/plasma","last_synced_at":"2025-04-11T06:18:26.213Z","repository":{"id":25985418,"uuid":"29427590","full_name":"peterhellberg/plasma","owner":"peterhellberg","description":"Experiments with plasma generation in Go","archived":false,"fork":false,"pushed_at":"2017-09-10T16:18:56.000Z","size":24,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T06:18:22.634Z","etag":null,"topics":["go","plasma","toy-project"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/peterhellberg.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}},"created_at":"2015-01-18T13:58:40.000Z","updated_at":"2019-07-17T08:50:34.000Z","dependencies_parsed_at":"2022-09-25T03:24:32.169Z","dependency_job_id":null,"html_url":"https://github.com/peterhellberg/plasma","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhellberg%2Fplasma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhellberg%2Fplasma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhellberg%2Fplasma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhellberg%2Fplasma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterhellberg","download_url":"https://codeload.github.com/peterhellberg/plasma/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248351482,"owners_count":21089286,"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":["go","plasma","toy-project"],"created_at":"2024-11-14T13:28:59.362Z","updated_at":"2025-04-11T06:18:26.169Z","avatar_url":"https://github.com/peterhellberg.png","language":"Go","readme":"# Plasma\n\nBased on the article \u003chttp://lodev.org/cgtutor/plasma.html\u003e\n\n## Progress\n\nFirst plot a sine on the X-axis.\n\n![Plasma progress 001](http://assets.c7.se/skitch/plasma_progress_001-20150118-143315.png)\n\nNow with `X+Y`\n\n![Plasma progress 002](http://assets.c7.se/skitch/plasma_progress_002-20150118-143808.png)\n\nWith the a square root thrown in for good measure\n\n![Plasma progress 003](http://assets.c7.se/skitch/plasma_progress_003-20150118-145540.png)\n\nCombine the sines\n\n![Plasma progress 004](http://assets.c7.se/skitch/plasma_progress_004-20150118-150354.png)\n\nGenerate a palette\n\n![Plasma palette](http://assets.c7.se/viz/plasma-palette.png)\n\nAnimate plasma using the palette\n\n![Plasma progress 005](http://assets.c7.se/viz/plasma-progress-005.gif)\n\nTweaked the plasma generation\n\n![Plasma progress 006](http://assets.c7.se/skitch/plasma_progress_006-20150118-175223.png)\n\nA few more tweaks\n\n![Plasma progress 007](http://assets.c7.se/skitch/plasma_progress_007-20150118-183534.png)\n\nChange the palette\n\n![Plasma palette 2](http://assets.c7.se/viz/plasma-palette-2.png)\n\nGenerate plasma using the new palette\n\n![Plasma progress 008](http://assets.c7.se/skitch/plasma_progress_008-20150118-204536.png)\n\nSupport for gradient palettes\n\n![Plasma palette 3](http://assets.c7.se/viz/plasma-palette-3.png)\n\nGenerate plasma using the gradient palette\n\n![Plasma progress 009](http://assets.c7.se/skitch/plasma_progress_009-20150118-212046.png)\n\nAnother animation\n\n![Plasma progress 010](http://assets.c7.se/viz/plasma-progress-010.gif)\n\n## Commands\n\n### CLI\n\nRendering palette and plasma as PNG images.\n\n```\nUsage of plasma:\n  -h=512: Height of the image\n  -n=1: Number of frames to generate\n  -o=\"plasma.png\": Output file name\n  -p=\"palette.png\": Palette file name\n  -s=16: Scale of the plasma\n  -show=false: Show the generated image\n  -w=512: Width of the image\n```\n\n### GUI\n\nWindow with a rotating plasma image.\n\n![Plasma GUI](http://assets.c7.se/skitch/Plasma_GUI-20150122-201318.png)\n\nCan also be transpiled into JavaScript by [GopherJS](http://www.gopherjs.org/)\n\n[![GopherJS Plasma](http://assets.c7.se/skitch/GopherJS_Plasma_in_Safari-20150122-201529.png)](http://data.gopher.se/js/plasma/)\n\n### Joystick GUI\n\nControl the plasma using a PS4 controller\n\n![Plasma Joystick GUI](http://assets.c7.se/skitch/Plasma_Joystick_GUI-20150120-005750.png)\n\n![Animation](http://assets.c7.se/viz/plasma-joystick-gui.gif)\n\n### Pixels GUI\n\nUsing `screen.ReplacePixels` to render the plasma.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterhellberg%2Fplasma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterhellberg%2Fplasma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterhellberg%2Fplasma/lists"}