<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jawhar Kodadi</title>
    <description>The latest articles on DEV Community by Jawhar Kodadi (@jawharkodadi).</description>
    <link>https://dev.to/jawharkodadi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1055146%2Fdc4c0f23-1bf9-4466-96cd-f013f0b39b02.png</url>
      <title>DEV Community: Jawhar Kodadi</title>
      <link>https://dev.to/jawharkodadi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jawharkodadi"/>
    <language>en</language>
    <item>
      <title>Serpentine Plotter: A Free Web-Based SVG Generator for Beautiful Generative Art</title>
      <dc:creator>Jawhar Kodadi</dc:creator>
      <pubDate>Wed, 02 Apr 2025 23:58:33 +0000</pubDate>
      <link>https://dev.to/jawharkodadi/serpentine-plotter-a-free-web-based-svg-generator-for-beautiful-generative-art-3imf</link>
      <guid>https://dev.to/jawharkodadi/serpentine-plotter-a-free-web-based-svg-generator-for-beautiful-generative-art-3imf</guid>
      <description>&lt;p&gt;I'm excited to share a fun and versatile tool I've been working on, called Serpentine Plotter. It's a web-based SVG generator that allows you to effortlessly create intricate, serpentine line patterns perfect for pen plotting and digital art.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4om8zchwrt6ao93ni3uv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4om8zchwrt6ao93ni3uv.png" alt="Serpentine Plotter Preview" width="800" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Serpentine Plotter?
&lt;/h2&gt;

&lt;p&gt;Serpentine Plotter is an interactive tool built with p5.js and the Dat.GUI library, designed to generate fluid, noise-driven serpentine patterns. It provides numerous customizable parameters to help artists, designers, and hobbyists craft unique line-based art easily and intuitively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore the tool here: &lt;a href="https://labs.jawharkodadi.com/serpentine/" rel="noopener noreferrer"&gt;Serpentine Plotter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features and Customization
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;- Shape Selection:&lt;/strong&gt; Generate patterns within Squares, Triangles, or Circles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Detailed Controls:&lt;/strong&gt; Adjust parameters such as amplitude, noise frequency, smoothing factor, line thickness, and drawing size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Edit Mode:&lt;/strong&gt; Interactively move shape control points to further customize your design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- SVG Export:&lt;/strong&gt; Quickly export your artwork as SVG files, ready for plotter printing or digital use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Randomization:&lt;/strong&gt; Easily experiment with new designs using the randomize feature available in the advanced version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community Feedback and Enhancements
&lt;/h2&gt;

&lt;p&gt;Since sharing &lt;a href="https://www.reddit.com/r/PlotterArt/comments/1jo6ltz/i_made_this_simple_serpentine_lines_svg_generator/" rel="noopener noreferrer"&gt;Serpentine Plotter on Reddit&lt;/a&gt;, I've received amazing suggestions from the PlotterArt community, leading to some exciting improvements:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 3D Capabilities:&lt;/strong&gt; An experimental version now includes 3D noise-driven patterns with camera orbiting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Planned Features:&lt;/strong&gt; G-code export for CNC and plotter machines, and occlusion handling to improve visual clarity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Behind the Scenes
&lt;/h2&gt;

&lt;p&gt;The inspiration for Serpentine Plotter came directly from my experiences designing a &lt;a href="https://jawharkodadi.com/creer-une-machine-a-dessiner-diy-plotter-pour-lart-generatif-mon-aventure-dartiste-technophile/" rel="noopener noreferrer"&gt;DIY pen plotter&lt;/a&gt;, blending art with technology. My journey in generative art, combined with hands-on maker experiences, has shaped tools like this to be accessible yet powerful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Out and Share Your Creations!
&lt;/h2&gt;

&lt;p&gt;Whether you're an artist, developer, or hobbyist, I invite you to experiment with Serpentine Plotter, create your own patterns, and share your creations. Feedback and contributions are always welcome!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsfs5fck4cbwpi2yxewp4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsfs5fck4cbwpi2yxewp4.jpg" alt="Plotter art by Lyanos777 On reddit" width="800" height="1066"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.reddit.com/user/lyanos777/" rel="noopener noreferrer"&gt;Plotter art by Lyanos777 On reddit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flm3t23gjabvfg9hmk8lv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flm3t23gjabvfg9hmk8lv.jpg" alt="Plotter art by Barnplotter" width="800" height="1000"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.instagram.com/barnplotter" rel="noopener noreferrer"&gt;Plotter art by Barnplotter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy plotting!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labs.jawharkodadi.com/serpentine/" rel="noopener noreferrer"&gt;Try Serpentine Plotter Now&lt;/a&gt;&lt;/p&gt;

</description>
      <category>art</category>
      <category>plotter</category>
      <category>p5js</category>
      <category>generativeart</category>
    </item>
    <item>
      <title>Generative Art with Grasshopper: Moroccan Zellige Evo Series L</title>
      <dc:creator>Jawhar Kodadi</dc:creator>
      <pubDate>Wed, 10 May 2023 20:34:48 +0000</pubDate>
      <link>https://dev.to/jawharkodadi/generative-art-with-grasshopper-moroccan-zellige-evo-series-l-1j3h</link>
      <guid>https://dev.to/jawharkodadi/generative-art-with-grasshopper-moroccan-zellige-evo-series-l-1j3h</guid>
      <description>&lt;p&gt;Hello, my friends! In today's latest creation, part of my "Zellige EVO" collection, I am delving into the world of generative Zellige art using Grasshopper Rhino to create captivating and endlessly evolving patterns.&lt;/p&gt;

&lt;p&gt;When it comes to &lt;a href="https://jawharkodadi.com/generative-art-avec-grasshopper-zellige-evo-serie-l/"&gt;generative art&lt;/a&gt;, I love exploring new paths and approaches. I had previously shared a Zellige pattern generator coded in P5.js on my blog. Creating generative art with JavaScript, Processing, or Python requires some knowledge of these programming languages. But fear not, it's not overly complicated! However, if you're not a fan of coding, there are several tools with visual interfaces to make the task easier. Grasshopper is one such tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why did I choose Grasshopper?
&lt;/h2&gt;

&lt;p&gt;As I mentioned earlier, one of the main advantages of Grasshopper is its visual interface. Unlike other programming languages such as JavaScript, Processing, or Python, Grasshopper does not require you to type lines of code. Instead, you can create algorithms visually by connecting graphical components to one another. This makes generative art creation much more accessible and, above all, much more intuitive.&lt;/p&gt;

&lt;p&gt;Personally, I find that Grasshopper provides an incredible level of flexibility. With its numerous components and parameters, you can explore and experiment with various techniques and approaches to create generative art.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I did it:
&lt;/h2&gt;

&lt;p&gt;I started by creating a grid with vertical and horizontal lines, onto which I placed an 8-pointed star. Then, I used the 16 points of this star to warp the grid lines, thus creating parametric curves that change based on their distance from the star's points.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wxu5FlUA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4cxuadt64llfxdtr9t2j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wxu5FlUA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4cxuadt64llfxdtr9t2j.jpg" alt="Design steps for the lines in Grasshopper" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the most interesting aspects of this artwork is that I integrated several sliders in Grasshopper to adjust different parameters, such as the distance between points, the amplitude of the deformation, and the scale of the curves. This allows me to generate an infinite number of shapes and create unique variations each time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u95h0Dgl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ezutd4int0kjjdqzlql.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u95h0Dgl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ezutd4int0kjjdqzlql.jpg" alt="Grasshopper definition file" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Some examples:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H0ihYGtg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bi08iln982e7rho6bej2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H0ihYGtg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bi08iln982e7rho6bej2.jpg" alt="Grasshopper Zellige lines example" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As part of my "&lt;a href="https://jawharkodadi.com/zellige-evo-exploration-de-lart-generatif-et-des-motifs-de-zellige-marocains/"&gt;Zellige EVO&lt;/a&gt;" collection, this creation falls within my exploration of generative Zellige art, where I enjoy playing with shapes and parameters to create dynamic and evolving artworks.&lt;/p&gt;

&lt;p&gt;Feel free to lose yourself in the twists and turns of the curves and appreciate the countless variations that emanate from this unique combination of constraints and freedoms. It's truly a fascinating experience, and I'm thrilled to share it with you!&lt;/p&gt;

</description>
      <category>generative</category>
      <category>grasshopper</category>
      <category>art</category>
      <category>design</category>
    </item>
    <item>
      <title>Exploring Moroccan Zellige Patterns with a Generative Art Tool I Created</title>
      <dc:creator>Jawhar Kodadi</dc:creator>
      <pubDate>Thu, 30 Mar 2023 02:21:01 +0000</pubDate>
      <link>https://dev.to/jawharkodadi/exploring-moroccan-zellige-patterns-with-a-generative-art-tool-i-created-13gm</link>
      <guid>https://dev.to/jawharkodadi/exploring-moroccan-zellige-patterns-with-a-generative-art-tool-i-created-13gm</guid>
      <description>&lt;p&gt;Moroccan Zellige patterns have been captivating artists, designers, and architects for centuries. These intricate geometric designs are a symbol of the rich artistic heritage of Moroccan culture. I've always been fascinated by these patterns, and as a creative coder, I decided to build a Moroccan Zellige Pattern Generator using the p5.js library. In this article, I'll introduce you to the generator I've created, which allows users to explore the beauty of these patterns, customize them, and create their own unique designs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of the Generator:
&lt;/h2&gt;

&lt;p&gt;I built the Moroccan Zellige Pattern Generator as a web-based tool that enables users to create stunning, customizable patterns using a simple graphical user interface (GUI). The tool offers various parameters to adjust, including the number of points, cell size, number of cells, shape size, rotation, and stroke width. Users can also toggle the grid display option to create a wide range of patterns.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pbpEibin--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09e6hs48tunmqhom4odb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pbpEibin--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09e6hs48tunmqhom4odb.png" alt="Moroccan Zellige Patterns screenshot 1" width="880" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Inspirations:
&lt;/h2&gt;

&lt;p&gt;My inspiration for creating this generator came from my love for Moroccan Zellige patterns and my passion for creative coding. I wanted to create a tool that would make it easy for users to explore these beautiful designs and have fun experimenting with different parameters to create unique patterns.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using the Generator:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://labs.jawharkodadi.com/moroccan_zellige_v2/"&gt;Visit the Moroccan Zellige Pattern Generator webpage&lt;/a&gt;.&lt;br&gt;
Begin by adjusting the parameters in the GUI to create your desired pattern. Experiment with different values and settings to explore the full range of possibilities.&lt;br&gt;
Toggle the grid display option to further customize your design.&lt;br&gt;
Once you have created a pattern you are satisfied with, click the "Save as SVG" button to download the SVG file.&lt;br&gt;
Use the exported SVG in your design projects, or share your generated patterns with others.&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots :
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V3dp13Pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/soe80k4yr49t0w7mi4bt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V3dp13Pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/soe80k4yr49t0w7mi4bt.png" alt="Moroccan Zellige Patterns screenshot 1" width="880" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Iaphbz7I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oazd9ryi1afm71kjx6de.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Iaphbz7I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oazd9ryi1afm71kjx6de.png" alt="Moroccan Zellige Patterns screenshot 2" width="880" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2hyme4sq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13m1l6asw5jz6bqqbh5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2hyme4sq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13m1l6asw5jz6bqqbh5e.png" alt="Moroccan Zellige Patterns screenshot 3" width="880" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yWTxSe8d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnw7ajegytdsp16nw877.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yWTxSe8d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnw7ajegytdsp16nw877.png" alt="Moroccan Zellige Patterns screenshot 4" width="880" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S9jxojZ6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gzsaqcocl2r7p3tsjdc0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S9jxojZ6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gzsaqcocl2r7p3tsjdc0.png" alt="Image description" width="880" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to make it better ?
&lt;/h2&gt;

&lt;p&gt;I would appreciate feedback on the user experience and interface of the Moroccan Zellige Pattern Generator. Are the customization options intuitive and easy to use? Do you have any suggestions for additional features or improvements to the current parameters? Your insights will be valuable in refining the tool. Thank you!&lt;/p&gt;

</description>
      <category>art</category>
      <category>generative</category>
      <category>design</category>
    </item>
  </channel>
</rss>
