{"id":18794539,"url":"https://github.com/mxgmn/texturesynthesis","last_synced_at":"2025-04-04T09:08:43.306Z","repository":{"id":41569472,"uuid":"58491468","full_name":"mxgmn/TextureSynthesis","owner":"mxgmn","description":"Texture synthesis from examples","archived":false,"fork":false,"pushed_at":"2022-06-01T12:20:32.000Z","size":2791,"stargazers_count":972,"open_issues_count":2,"forks_count":54,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-03-28T08:07:29.020Z","etag":null,"topics":["algorithm","csharp","gamedev","machine-learning","procedural-generation","texture-synthesis"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mxgmn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["mxgmn"]}},"created_at":"2016-05-10T20:28:38.000Z","updated_at":"2025-03-20T07:22:15.000Z","dependencies_parsed_at":"2022-07-08T02:44:18.614Z","dependency_job_id":null,"html_url":"https://github.com/mxgmn/TextureSynthesis","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxgmn%2FTextureSynthesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxgmn%2FTextureSynthesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxgmn%2FTextureSynthesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxgmn%2FTextureSynthesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mxgmn","download_url":"https://codeload.github.com/mxgmn/TextureSynthesis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247149501,"owners_count":20891954,"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":["algorithm","csharp","gamedev","machine-learning","procedural-generation","texture-synthesis"],"created_at":"2024-11-07T21:29:43.244Z","updated_at":"2025-04-04T09:08:43.289Z","avatar_url":"https://github.com/mxgmn.png","language":"C#","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"images/top.png\"\u003e\u003c/p\u003e\n\nThe algorithms are:\n\n1. Full neighbourhood search algorithm of [Scott Draves](http://draves.org/fuse) and [Alexei Efros + Thomas Leung](https://www.eecs.berkeley.edu/Research/Projects/CS/vision/papers/efros-iccv99.pdf) and [Li-Yi Wei + Marc Levoy](https://graphics.stanford.edu/papers/texture-synthesis-sig00/texture.pdf) is probably the simplest texture synthesis algorithm imaginable.\n2. K-coherent neighbourhood search of [Michael Ashikhmin](http://www.cs.princeton.edu/courses/archive/fall10/cos526/papers/ashikhmin01a.pdf) and [Xin Tong + Jingdan Zhangz + Ligang Liu + Xi Wangz + Baining Guo + Heung-Yeung Shum](http://research.microsoft.com/pubs/65191/btfsynthesis.pdf)  takes computational burden from the synthesis to the analysis part and therefore is better suited for synthesizing large textures.\n3. Resynthesis algorithm of [P. F. Harrison](http://logarithmic.net/pfh-files/thesis/dissertation.pdf) is  scale-invariant, fast, supports constraints and practically never produces completely unsatisfactory results.\n\nNote that my implementations are not completely true to the original papers.\n\nWatch a video demonstration of P. F. Harrison's algorithm on YouTube: [https://www.youtube.com/watch?v=8sUMBMpZNzk](https://www.youtube.com/watch?v=8sUMBMpZNzk).\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/harrison.gif\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/ultima.png\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/swords.png\"\u003e\u003c/p\u003e\n\n## How to build\nThis is a console application that depends only on the standard library. Get [.NET Core](https://dotnet.microsoft.com/download) for Windows, Linux or macOS and run\n```\ndotnet run --configuration Release TextureSynthesis.csproj\n```\n","funding_links":["https://github.com/sponsors/mxgmn"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxgmn%2Ftexturesynthesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmxgmn%2Ftexturesynthesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxgmn%2Ftexturesynthesis/lists"}