<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>tabreturn // blog</title>
    <description>A collection of posts covering a blend of technology, design, code, and creativity.</description>
    <link>https://tabreturn.github.io/</link>
    <atom:link href="https://tabreturn.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sat, 11 Mar 2023 22:10:00 +0000</pubDate>
    <lastBuildDate>Sat, 11 Mar 2023 22:10:00 +0000</lastBuildDate>
    <generator>Jekyll v3.9.3</generator>
    
      <item>
        <title>Overview of Tools Combining Processing and Python</title>
        <description>&lt;p&gt;A while ago, I was reading over (and responding to) a post on the &lt;a href=&quot;https://discourse.processing.org&quot;&gt;Processing forums&lt;/a&gt;. The thread discussed the future of Processing &lt;a href=&quot;https://py.processing.org/&quot;&gt;Python Mode / Processing.py&lt;/a&gt;, but that’s not exactly what this blog post is about. What inspired me was one particular comment from &lt;em&gt;Setsuna&lt;/em&gt; that read:&lt;/p&gt; &lt;p&gt;&lt;em style=&quot;font-size:1.5em; line-height:1.5em&quot;&gt;“py5, p5py, and now pyp5js… Is the community trying to get the newbies confused? Because it’s working.”&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;– Setsuna, from the &lt;a href=&quot;https://discourse.processing.org/t/what-is-the-future-of-processing-python-mode/35009/20&quot;&gt;Processing forums&lt;/a&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Setsuna makes a valid point. People involved in developing Python implementations of Processing should take note. &lt;a href=&quot;https://py.processing.org/&quot;&gt;Processing.py&lt;/a&gt;, &lt;a href=&quot;https://py5.ixora.io/&quot;&gt;py5&lt;/a&gt;, &lt;a href=&quot;https://p5.readthedocs.io/&quot;&gt;p5py&lt;/a&gt;, and &lt;a ...</description>
        <pubDate>Tue, 02 Aug 2022 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/processing/python/2022/08/02/overview_of_tools_combining_python_and_processing.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/processing/python/2022/08/02/overview_of_tools_combining_python_and_processing.html</guid>
        
        
        <category>code</category>
        
        <category>processing</category>
        
        <category>python</category>
        
      </item>
    
      <item>
        <title>Generative SVG for Pen Plotters using Python</title>
        <description>&lt;p&gt;I recently acquired access to a pen plotter, which I’m excited to report makes a fantastic hardware addition to my growing suite of creative coding toys. Python has plenty to offer the plotter enthusiast – from powerful SVG optimisation tools like &lt;a href=&quot;https://github.com/abey79/vpype&quot;&gt;vpype&lt;/a&gt; to &lt;a href=&quot;https://docs.blender.org/manual/en/latest/advanced/scripting/index.html&quot;&gt;Blender scripting&lt;/a&gt; for ‘3D’ SVG renders, and more.&lt;/p&gt; &lt;figure&gt; &lt;img src=&quot;https://tabreturn.github.io/img/gsfppup/plot-banner.png&quot; class=&quot;fullwidth&quot; /&gt; &lt;/figure&gt; &lt;p&gt;I’ve been working extensively with &lt;a href=&quot;http://py5.ixora.io/&quot;&gt;py5&lt;/a&gt; for generative art projects and investigating it seriously as a tool for learning &amp;amp; teaching to code in a more visual context. I recently delivered a &lt;a href=&quot;https://ccfest.rocks/&quot;&gt;CC Fest&lt;/a&gt; presentation on my SVG+plotter adventures ...</description>
        <pubDate>Thu, 03 Feb 2022 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/python/svg/thonny/2022/02/03/generative_svg_for_pen_plotters_using_python.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/python/svg/thonny/2022/02/03/generative_svg_for_pen_plotters_using_python.html</guid>
        
        
        <category>code</category>
        
        <category>python</category>
        
        <category>svg</category>
        
        <category>thonny</category>
        
      </item>
    
      <item>
        <title>Portable Thonny and py5</title>
        <description>&lt;p&gt;I very recently stumbled upon &lt;a href=&quot;http://py5.ixora.io/&quot;&gt;py5&lt;/a&gt;, a Python version of Processing for Python 3.8+ that uses Processing’s core libraries under the hood (thanks to some &lt;a href=&quot;http://www.jpype.org&quot;&gt;JPype&lt;/a&gt; magic).&lt;/p&gt; &lt;p style=&quot;border:3px solid rgba(255,255,255,0.5); outline:1px solid black; margin:-0.5em 0 1.5em 0; padding:1em&quot;&gt; &lt;em&gt;I’ve begun working on a Thonny plug-in, &lt;a href=&quot;https://pypi.org/project/thonny-py5mode/&quot;&gt;thonny-py5mode&lt;/a&gt;, that automates the installation steps I cover in this post. You can check out the &lt;a href=&quot;https://github.com/tabreturn/thonny-py5mode&quot;&gt;project repo&lt;/a&gt; to track how work on the plug-in is progressing&lt;/em&gt;. &lt;/p&gt; &lt;p&gt;Previously, I wrote a post on &lt;a href=&quot;/code/python/thonny/2020/02/26/thonny_and_p5.html&quot;&gt;combining the Thonny editor and p5&lt;/a&gt;. &lt;em&gt;p5&lt;/em&gt; is a sort of Python ‘clone’ of Processing, ...</description>
        <pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/python/thonny/2021/06/21/thonny_and_py5.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/python/thonny/2021/06/21/thonny_and_py5.html</guid>
        
        
        <category>code</category>
        
        <category>python</category>
        
        <category>thonny</category>
        
      </item>
    
      <item>
        <title>Processing.py in Ten Lessons – Resources</title>
        <description>&lt;p&gt;I’ve created two new resources to help Processing.py users – &lt;strong&gt;a website for browsing code examples&lt;/strong&gt; and a &lt;strong&gt;cheat sheet for beginners&lt;/strong&gt;. If you’re keen to learn more about Python Mode for Processing, I’ve written a &lt;a href=&quot;/#processing-reverse&quot;&gt;series of lessons&lt;/a&gt;. I’ve also got a book out, &lt;a href=&quot;https://nostarch.com/Learn-Python-Visually&quot;&gt;Learn Python Visually&lt;/a&gt;, published by No Starch Press.&lt;/p&gt; &lt;h2 id=&quot;1-a-website-for-browsing-code-examples&quot;&gt;1. A Website for Browsing Code Examples&lt;/h2&gt; &lt;p&gt;&lt;a href=&quot;http://pyde.org/&quot;&gt;PYDE.ORG&lt;/a&gt; hosts a collection of short, prototypical programs exploring the basics of programming with Processing.py.&lt;/p&gt; &lt;figure&gt; &lt;img class=&quot;fullwidth&quot; style=&quot;outline:1px solid #BBB&quot; src=&quot;https://raw.githubusercontent.com/tabreturn/pyde.org/master/screenshot.png&quot; /&gt; &lt;figcaption&gt; The PYDE.ORG landing page displaying the examples listing &lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;So far, ...</description>
        <pubDate>Fri, 16 Apr 2021 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/processing/python/2021/04/16/processing.py_in_ten_lessons-resources.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/processing/python/2021/04/16/processing.py_in_ten_lessons-resources.html</guid>
        
        
        <category>code</category>
        
        <category>processing</category>
        
        <category>python</category>
        
      </item>
    
      <item>
        <title>Interactive Animation with SVG and GSAP</title>
        <description>&lt;p&gt;In this tutorial, you’ll create an interactive espresso machine using SVG, JavaScript, and the &lt;a href=&quot;https://greensock.com/gsap/&quot;&gt;GSAP&lt;/a&gt; library for animation. You’ll draw the espresso machine using SVG code; once that’s complete, you’ll add the JavaScript/GSAP code to animate it. You’ll learn how to use different SVG elements and attributes to draw with code. I won’t go into much detail about JavaScript—just enough to add some event listeners and manipulate SVG elements with GSAP. The tutorial assumes that you possess a decent grasp of how HTML and CSS work.&lt;/p&gt; &lt;p&gt;The final result is a three-step, interactive animation (Figure 1). Click the object ...</description>
        <pubDate>Wed, 16 Dec 2020 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/javascript/svg/2020/12/16/interactive_animation_with_svg_and_gsap.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/javascript/svg/2020/12/16/interactive_animation_with_svg_and_gsap.html</guid>
        
        
        <category>code</category>
        
        <category>javascript</category>
        
        <category>svg</category>
        
      </item>
    
      <item>
        <title>A Quick Intro to Blender Creative Coding – part 3 of 3</title>
        <description>&lt;p style=&quot;text-align:right&quot;&gt; « &lt;a href=&quot;/code/blender/python/2020/07/14/a_quick_intro_to_blender_creative_coding-part_2_of_3.html&quot;&gt; part 2 of 3&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In this final part, you’ll learn some Blender scripting techniques—like how to address, manipulate, copy, and animate mesh primitives using code. To combine all of those techniques, you’ll create a wavy pattern of cones—a cool-looking animation that you can convert into a looping GIF.&lt;/p&gt; &lt;p&gt;I’ll review the all-important &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bpy&lt;/code&gt; library using a selection of attributes and methods from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bpy.data&lt;/code&gt; module. I’ll also touch on how to import code from other Python files, as well as using other code editors to write your Blender code. Of ...</description>
        <pubDate>Sun, 01 Nov 2020 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/blender/python/2020/11/01/a_quick_intro_to_blender_creative_coding-part_3_of_3.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/blender/python/2020/11/01/a_quick_intro_to_blender_creative_coding-part_3_of_3.html</guid>
        
        
        <category>code</category>
        
        <category>blender</category>
        
        <category>python</category>
        
      </item>
    
      <item>
        <title>A Quick Intro to Blender Creative Coding – part 2 of 3</title>
        <description>&lt;p style=&quot;text-align:right&quot;&gt; « &lt;a href=&quot;/code/blender/python/2020/06/06/a_quick_intro_to_blender_creative_coding-part_1_of_3.html&quot;&gt; part 1 of 3&lt;/a&gt; | &lt;a href=&quot;/code/blender/python/2020/11/01/a_quick_intro_to_blender_creative_coding-part_3_of_3.html&quot;&gt; part 3 of 3&lt;/a&gt; »&lt;br /&gt; &lt;/p&gt; &lt;p&gt;In this instalment, you’ll learn about some useful Blender features for writing scripts. You’ll use the &lt;em&gt;Info&lt;/em&gt; editor to glean what Python commands are associated with the different actions you perform using the graphic interface. I’ll also introduce the Blender &lt;em&gt;Console&lt;/em&gt;, a handy editor for entering line-by-line Python commands that apply immediately to your scene. You’ll use the Console to execute operations that you might otherwise perform with mouse clicks and keyboard shortcuts.&lt;/p&gt; &lt;p&gt;Before proceeding, open Blender (using the &lt;a href=&quot;/code/blender/python/2020/06/06/a_quick_intro_to_blender_creative_coding-part_1_of_3.html#launching-blender-using-the-command-line&quot;&gt;command ...</description>
        <pubDate>Tue, 14 Jul 2020 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/blender/python/2020/07/14/a_quick_intro_to_blender_creative_coding-part_2_of_3.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/blender/python/2020/07/14/a_quick_intro_to_blender_creative_coding-part_2_of_3.html</guid>
        
        
        <category>code</category>
        
        <category>blender</category>
        
        <category>python</category>
        
      </item>
    
      <item>
        <title>A Quick Intro to Blender Creative Coding – part 1 of 3</title>
        <description>&lt;p style=&quot;text-align:right&quot;&gt; &lt;a href=&quot;/code/blender/python/2020/07/14/a_quick_intro_to_blender_creative_coding-part_2_of_3.html&quot;&gt; part 2 of 3&lt;/a&gt; »&lt;br /&gt; &lt;/p&gt; &lt;p&gt;&lt;em&gt;At the time of writing, Blender is on release 2.83; this is also a long term support release (&lt;a href=&quot;https://www.blender.org/download/lts/&quot;&gt;LTS&lt;/a&gt;).&lt;/em&gt;&lt;/p&gt; &lt;p&gt;In this series of tutorials, I’ll introduce Blender as a tool for creative coding. &lt;a href=&quot;https://www.blender.org/&quot;&gt;Blender&lt;/a&gt; is open-source software for 3D modelling and animation that can also handle compositing, video editing, and 2D animation. Artists and animators operate Blender using a graphic user interface (Figure 1.1), but it also features a Python API that can do everything the GUI can and more. That means you can use Python code ...</description>
        <pubDate>Sat, 06 Jun 2020 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/blender/python/2020/06/06/a_quick_intro_to_blender_creative_coding-part_1_of_3.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/blender/python/2020/06/06/a_quick_intro_to_blender_creative_coding-part_1_of_3.html</guid>
        
        
        <category>code</category>
        
        <category>blender</category>
        
        <category>python</category>
        
      </item>
    
      <item>
        <title>Portable Thonny and p5</title>
        <description>&lt;p&gt;You can combine &lt;em&gt;Thonny&lt;/em&gt; and &lt;em&gt;p5&lt;/em&gt; for a Processing-esque, Python 3 development environment that runs off a USB drive. There are situations where you may prefer to use p5 over Processing Python Mode / Processing.py, which I discuss in this post. This Thonny-p5 combo is also handy for teaching programming in computer labs where students cannot install software, or any situation where you’d prefer to run an application in a portable fashion.&lt;/p&gt; &lt;p style=&quot;border:3px solid rgba(255,255,255,0.5); outline:1px solid black; margin:-0.5em 0 1.5em 0; padding:1em&quot;&gt; &lt;em&gt;I’ve written a more recent post on combining &lt;a href=&quot;/code/python/thonny/2021/06/21/thonny_and_py5.html&quot;&gt;Thonny and &lt;strong&gt;py5&lt;/strong&gt;&lt;/a&gt;. This is quite different ...</description>
        <pubDate>Wed, 26 Feb 2020 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/python/thonny/2020/02/26/thonny_and_p5.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/python/thonny/2020/02/26/thonny_and_p5.html</guid>
        
        
        <category>code</category>
        
        <category>python</category>
        
        <category>thonny</category>
        
      </item>
    
      <item>
        <title>Processing.py in Ten Lessons – 8.1: Functions</title>
        <description>&lt;p style=&quot;text-align:right&quot;&gt; « &lt;a href=&quot;/code/processing/python/2019/03/19/processing.py_in_ten_lessons-7.5-_controlp5.html&quot;&gt; 7.5: ControlP5&lt;/a&gt; &lt;/p&gt; &lt;hr /&gt; &lt;p&gt; &lt;br /&gt; &lt;strong&gt;I have a new book out titled &lt;em&gt;Learn Python Visually – Creative Coding with Processing.py&lt;/em&gt;&lt;/strong&gt;. The book contains a refined and redesigned version of what I’ve provided online, printed in full colour with new chapters and nice margins to scrawl in. You can order a copy from the &lt;a href=&quot;https://nostarch.com/Learn-Python-Visually&quot;&gt;No Starch website&lt;/a&gt; or &lt;a href=&quot;https://www.amazon.com/Learn-Python-Visually-Tristan-Bunn-ebook/dp/B08JKNHDWN/&quot;&gt;Amazon&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;img class=&quot;fullwidth&quot; src=&quot;http://portfolio.tabreturn.com/images/learn-python-visually.png&quot; /&gt;&lt;/p&gt; &lt;p&gt;The &lt;em&gt;functions&lt;/em&gt; chapter is available as a free sample download here:&lt;br /&gt; &lt;a href=&quot;https://nostarch.com/download/samples/LearnPythonVisually_sampleChapter.pdf&quot;&gt;https://nostarch.com/download/samples/LearnPythonVisually_sampleChapter.pdf&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I’ll finish off the remaining lessons (listed below), but cannot say exactly when. You can ...</description>
        <pubDate>Fri, 26 Apr 2019 00:00:00 +0000</pubDate>
        <link>https://tabreturn.github.io/code/processing/python/2019/04/26/processing.py_in_ten_lessons-8.1-_functions.html</link>
        <guid isPermaLink="true">https://tabreturn.github.io/code/processing/python/2019/04/26/processing.py_in_ten_lessons-8.1-_functions.html</guid>
        
        
        <category>code</category>
        
        <category>processing</category>
        
        <category>python</category>
        
      </item>
    
  </channel>
</rss>
