{"id":19867545,"url":"https://github.com/erkaman/cloud_gen","last_synced_at":"2025-06-20T10:33:19.169Z","repository":{"id":141382378,"uuid":"77462879","full_name":"Erkaman/cloud_gen","owner":"Erkaman","description":"Procedural Generation of Clouds with Vector Graphics","archived":false,"fork":false,"pushed_at":"2017-01-08T10:30:25.000Z","size":683,"stargazers_count":51,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-02T06:44:51.680Z","etag":null,"topics":["bezier","bezier-curves","c-plus-plus","cloud","demo","ellipse","procedural","procedural-generation","svg","vector-graphics"],"latest_commit_sha":null,"homepage":null,"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/Erkaman.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":"2016-12-27T14:55:11.000Z","updated_at":"2025-03-16T00:55:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"4f54a9fa-5e15-484f-91e4-8b07d3e90a99","html_url":"https://github.com/Erkaman/cloud_gen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Erkaman/cloud_gen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fcloud_gen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fcloud_gen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fcloud_gen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fcloud_gen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erkaman","download_url":"https://codeload.github.com/Erkaman/cloud_gen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fcloud_gen/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260927114,"owners_count":23083956,"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":["bezier","bezier-curves","c-plus-plus","cloud","demo","ellipse","procedural","procedural-generation","svg","vector-graphics"],"created_at":"2024-11-12T15:29:37.729Z","updated_at":"2025-06-20T10:33:14.158Z","avatar_url":"https://github.com/Erkaman.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Procedural Generation of Clouds with Vector Graphics.\n\nThis is just a quick experiment where I tried generating procedural\n2D clouds using vector graphics. The experiment is just a program that\noutputs a bunch of vector clouds as a SVG file:\n\n![](img/montage.png)\n\nYou can see the SVG files in the directory `img/`.\n\n## Building and Usage\n\nYou can build using make:\n\n```\nmake\n```\n\nYou can now generate an SVG with clouds by doing\n\n```\n./cloud_gen \u003e out.svg\n```\n\nBy changing the variable\n\n```\nint TYPE = 0;\n```\n\nin `main.cpp` you can generate different kinds of clouds.\n\n## How Does this Work?\n\nWe start with the geometry for an ellipse:\n\n\u003cimg src=\"img/step0.png\" width=\"270\" height=\"177\" /\u003e\n\nThen we replace every edge on the original ellipse with a cubic Bezier curve:\n\n\u003cimg src=\"img/step1.png\" width=\"270\" height=\"177\" /\u003e\n\nTo introduce some randomness, we randomly move the control points of\nthe cubic bezier curves some:\n\n\u003cimg src=\"img/step2.png\" width=\"270\" height=\"177\" /\u003e\n\nand that's it!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferkaman%2Fcloud_gen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferkaman%2Fcloud_gen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferkaman%2Fcloud_gen/lists"}