<?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: Jenaba Sow</title>
    <description>The latest articles on DEV Community by Jenaba Sow (@missjavascript).</description>
    <link>https://dev.to/missjavascript</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%2F896396%2F8eca3eb4-4c1c-4b53-95ec-f203089c16b7.png</url>
      <title>DEV Community: Jenaba Sow</title>
      <link>https://dev.to/missjavascript</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/missjavascript"/>
    <language>en</language>
    <item>
      <title>Creative Coding with p5.JS: An inclusive javascript library</title>
      <dc:creator>Jenaba Sow</dc:creator>
      <pubDate>Thu, 28 Jul 2022 15:06:00 +0000</pubDate>
      <link>https://dev.to/devsatasurion/creative-coding-with-p5js-an-inclusive-javascript-library-4e55</link>
      <guid>https://dev.to/devsatasurion/creative-coding-with-p5js-an-inclusive-javascript-library-4e55</guid>
      <description>&lt;p&gt;Are you interested in coding but unsure where to start? Or  you're a seasoned developer wanting a new challenge? Maybe even you're somewhere in the middle, searching for the joy in development again? That’s me, always searching for the joy! My joy comes from being creative. This is why I really enjoy creative coding with p5.JS, and I think you will too.&lt;/p&gt;

&lt;p&gt;Even though stereotypically developers are strictly logical, I am a creative at heart. I grew up drawing, painting, sculpting, and as I grew so did technology! I harnessed technology as a tool for my creativity. My initial interest in computer science was born from the promise of creating with math and science. As I grow as a developer and creative, I've always held on to this centering ideal; with a computer my ideas are limitless. Throughout undergrad at Howard University I made it a priority to participate in hackathons and side projects, constantly tapping into my creative self.&lt;/p&gt;

&lt;p&gt;Similarly, now as a software engineer at Asurion, I am still involved in side projects and pick up tasks that push me towards ideating, tech designing, and developing features that previously didn’t exist. For me p5.JS has been a great tool to stretch that creative muscle even further. I can use p5 to create animations, data visualization, graphic designs, chatbots, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is p5.JS ?
&lt;/h2&gt;

&lt;p&gt;p5 is a FREE and open source javascript library for creative coding. “Using the metaphor of a sketch, p5.Js has a full set of drawing functionality. However, you’re not limited to your drawing canvas. You can think of your whole browser page as your sketch, including HTML5 objects for text, input, video, webcam, and sound.” p5.JS is made of prewritten functions. When a creative combines them into a program they can create some very cool visuals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fdrusro5giesv1yl5lquk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fdrusro5giesv1yl5lquk.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality resources makes p5.JS simple to use
&lt;/h2&gt;

&lt;p&gt;The p5 community prides itself in inclusivity, by believing we are all learners. I recognize access to computers and therefore access to real time development is still a privilege in today’s world, which is why I appreciate p5 for trying to make using their library as simple to use as possible through their &lt;a href="https://p5js.org/" rel="noopener noreferrer"&gt;online home&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My favorite and most frequently used feature on p5's online home is the &lt;a href="https://editor.p5js.org/" rel="noopener noreferrer"&gt;online editor&lt;/a&gt;. This is a super empowering tool! The online editor allows creatives to code on the left side and receive immediate output on the right side. You can edit, run, save, and browse all your programs online by making an account. No separate IDE or installs needed! This is really valuable for making a portfolio, coding anywhere/anytime creativity hits, and sharing out your projects. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5ofwtzyjdlkshg26zhz6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5ofwtzyjdlkshg26zhz6.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My second favorite feature is the &lt;a href="https://p5js.org/learn/" rel="noopener noreferrer"&gt;learn section&lt;/a&gt;. p5 created and complied tutorials covering all the basics. Whenever I need help getting started, or wanting a refresher, this has been a great spot to check out and recharge my skills. &lt;/p&gt;

&lt;p&gt;My third favorite feature is the &lt;a href="https://p5js.org/teach/" rel="noopener noreferrer"&gt;teach section&lt;/a&gt;. Teachers from all over the world are invited to &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSei8yHX2BROMnMQeZT_tsSXJOH13TPRG6CB4GVHH1oL1hzkZg/viewform" rel="noopener noreferrer"&gt;submit&lt;/a&gt; their p5.JS lesson plans for the larger community's benefit. By sharing teaching materials, this empowers p5.JS learners to become teachers and inspire even more learners!&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's start programming in p5!
&lt;/h2&gt;

&lt;p&gt;To start programming in p5.JS you first need to understand some very important functions; setup(), draw(), createCanvas(), and background().&lt;/p&gt;

&lt;p&gt;&lt;a href="https://p5js.org/reference/#/p5/setup" rel="noopener noreferrer"&gt;setup()&lt;/a&gt; - Think of this like a whiteboard. This is where you will determine your screen size, background color, and load any media. This function is usually only used once.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://p5js.org/reference/#/p5/createCanvas" rel="noopener noreferrer"&gt;createCanvas()&lt;/a&gt; - This is best used as the first line inside of setup(). This functions allows you to control the size of your drawing canvas. Without using this function the canvas default size is 100x100.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://p5js.org/reference/#/p5/background" rel="noopener noreferrer"&gt;background()&lt;/a&gt; - This function controls your background color. The default is transparent. To set your background color once, or only in your first frame use background() in setup(). If you want your canvas to clear at the start of each frame, use background() inside of draw(). background() can receive many different notation values (ie. hexadecimal or integer RGB etc.) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://p5js.org/reference/#/p5/draw" rel="noopener noreferrer"&gt;draw()&lt;/a&gt; - This is where you specify what your program will draw on your whiteboard! This function runs repeatedly, which is great when creating animations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fyfkedlkjl0j7tzaakk16.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fyfkedlkjl0j7tzaakk16.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you are ready to explore the world of p5.JS! Checkout the &lt;a href="https://p5js.org/get-started/" rel="noopener noreferrer"&gt;Get Started&lt;/a&gt; guided coding section to try these functions out for yourself!&lt;/p&gt;

&lt;p&gt;So wherever you are in your development journey, just starting out, further along, or somewhere in the middle, p5.JS has a promise for you; to make, “coding accessible and inclusive for artists, designers, educators, beginners, and anyone else!”&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples of cool projects
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://sydneychatbot.glitch.me/" rel="noopener noreferrer"&gt;Black Lives Matter Chatbot&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://showcase.p5js.org/#/2021-All/BLM-Chatbot/" rel="noopener noreferrer"&gt;Project Description&lt;/a&gt;
&lt;img src="https://media.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%2Fs4454czupx8umxvwmu4m.gif" alt="Image description"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://siorikitajima.github.io/perspective/" rel="noopener noreferrer"&gt;Perspective&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://showcase.p5js.org/#/2021-Data%20Visualization/Perspective/" rel="noopener noreferrer"&gt;Project Description&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://editor.p5js.org/monalisa.thakur282/full/CIJIJOtKw" rel="noopener noreferrer"&gt;Self Love&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://showcase.p5js.org/#/2021-All/Self-Love/" rel="noopener noreferrer"&gt;Project Description&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Additional resources for learning
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA" rel="noopener noreferrer"&gt;The Coding Train p5 Tutorials&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codecademy.com/learn/learn-p5js/modules/p5js-introduction-to-creative-coding/cheatsheet#:~:text=js%20Library-,p5.,code%20in%20the%20web%20browser." rel="noopener noreferrer"&gt;Code Academy&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/processing/p5.js/wiki/p5.js-overview" rel="noopener noreferrer"&gt;p5.JS Overview&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/processing/p5.js/wiki/Processing-transition" rel="noopener noreferrer"&gt;Familiar with processing and curious about p5's improvements?&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
