{"id":311,"date":"2023-04-25T18:53:50","date_gmt":"2023-04-25T10:53:50","guid":{"rendered":"https:\/\/www.artixels.com\/wp1\/?p=311"},"modified":"2025-04-26T19:26:03","modified_gmt":"2025-04-26T11:26:03","slug":"texture-synthesis-using-neural-cellular-automata","status":"publish","type":"post","link":"https:\/\/www.artixels.com\/wp1\/2023\/04\/25\/texture-synthesis-using-neural-cellular-automata\/","title":{"rendered":"Texture Synthesis using Neural Cellular Automata"},"content":{"rendered":"\n<p class=\"has-small-font-size wp-block-paragraph\"><a href=\"https:\/\/distill.pub\/selforg\/2021\/textures\/\">Self-Organizing texture or Neural Cellular Automata (NCA)<\/a> is a perfect means for texture synthesis. We have successfully used this method to train NCA for creating textures such as skin pores. The following image is the input image patch for training.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"110\" height=\"112\" src=\"https:\/\/www.artixels.com\/wp1\/wp-content\/uploads\/2025\/04\/tex_synth_patch-1.jpg\" alt=\"\" class=\"wp-image-317\"\/><\/figure>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">The image below is an example of texture generated by the learned NCA.  Since the learned NCA is simply a pixel shader, so one may freely define the image size of the texture resolution to be synthesized.  The training took around 12 hours on a GTX 3090 with 24GB memory.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/www.artixels.com\/wp1\/wp-content\/uploads\/2025\/04\/tex_synth_result-1024x573.jpg\" alt=\"\" class=\"wp-image-319\" srcset=\"https:\/\/www.artixels.com\/wp1\/wp-content\/uploads\/2025\/04\/tex_synth_result-1024x573.jpg 1024w, https:\/\/www.artixels.com\/wp1\/wp-content\/uploads\/2025\/04\/tex_synth_result-300x168.jpg 300w, https:\/\/www.artixels.com\/wp1\/wp-content\/uploads\/2025\/04\/tex_synth_result-768x430.jpg 768w, https:\/\/www.artixels.com\/wp1\/wp-content\/uploads\/2025\/04\/tex_synth_result.jpg 1196w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">In additon, NCA learns to create the image pattern statistically, when the NCA shader runs, it simply evolves and continuously creates a sequence of images that all share the same statisitical pattern.  I have appropriated this unique characteristic for creating artworks such as Imaginarium.  Below is a short video showing NCA texture synthesis in action.  If you watch carefully, the patterns are still slowly changing yet it looks like a still image.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/www.artixels.com\/wp1\/wp-content\/uploads\/2025\/04\/FF_Pores_Stable_18_18_step_3_twt2.mp4\"><\/video><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Self-Organizing texture or Neural Cellular Automata (NCA) is a perfect means for texture synthesis. We have successfully used this method to train NCA for creating textures such as skin pores. The following image is the input image patch for training. The image below is an example of texture generated by the learned NCA. Since the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":324,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,10,7],"tags":[],"class_list":["post-311","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ml","category-pin","category-vfx"],"_links":{"self":[{"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/posts\/311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/comments?post=311"}],"version-history":[{"count":5,"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/posts\/311\/revisions"}],"predecessor-version":[{"id":325,"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/posts\/311\/revisions\/325"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/media\/324"}],"wp:attachment":[{"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/media?parent=311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/categories?post=311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.artixels.com\/wp1\/wp-json\/wp\/v2\/tags?post=311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}