RSSAmplifier

Blog

bylr.info

Recent content on bylr.info

bylr.infoRSS feed ↗18 posts

Latest posts

TIL: displaying contributor avatars in GitHub changelogs

While working on a changelog-generation script for my vsvg project, I wanted to display the list of contributors as circular avatars, just like GitHub does in multiple places. After a few Google searches and some failed attempts, I identified a couple of key tricks. The first is about obtaining the avatar image for a given GitHub account. Although the URL is hard to predict, adding .png to the…

On vpype layers, their names, and the AxiDraw

This article explores the topic of layers, their name, and how they can be used to control the AxiDraw plotting process.

Annotated Release Notes: vpype 1.13

vpype 1.13 is out! 🎉 The main improvement is Python 3.11 support, but it does come with a few other bells and whistles, so let’s dive in.

Project: the Automatic #plotloop Machine

Deep dive into the internals of my Automatic #plotloop Machine.

Batch processing SVGs with DoIt and vpype

doit (a.k.a. PyDoIt) is a fantastic Python-based tool to automate repetitive workflows. It works particularly well alongside vpype to address mundane plotting-related tasks. This article explains in details how to automate an SVG optimisation and conversion workflow.

TIL: running Textual on a framebuffer terminal emulator for Linux

My successful (yet probably vain) attempt at running Textual (a modern TUI framework) on a Raspberry Pi without X11 by using fbpad (a framebuffer terminal emulator for Linux).

Annotated Release Notes: vpype 1.12

vpype 1.12 is out! 🎉 No ground-breaking features, but an improved “quality-of-life”, especially for Apple-silicon Mac owners, and few other goodies. Let’s dive in.

TIL: use Plausible.io with a Sphinx documentation hosted on RTD

Although Google Analytics is very easy to setup on a Read the Docs-based documentation website, it requires a cookie banner to be GDPR-compliant and is otherwise questionable from a privacy-preservation point-of-view. As a result, I much prefer to use and support the excellent EU-based Plausible.io for traffic metrics instead. This article explains how to setup a Read the Docs-based documentation…

TIL: using Sphinx substitutions to generate text snippets from code

Often, technical documentations include lists or other snippets of text that are strongly related to some of the project’s code. vpype’s documentation is no exception to this. For instance, the Built-in symbols section lists the units available to expressions: These units are related to the following piece of code: # vpype/utils.py UNITS = { 'px': 1.0, 'in': 96.0, 'inch': 96.0, 'ft':…

Annotated Release Notes: vpype 1.11

This release further solidifies the block commands which were overhauled in vpype 1.9. It also introduces several changes revolving around the “plotting with paint” use-case, which typically requires the brush to be regularly dipped in a paint well. This can be achieved by inserting “dipping” patterns at regular intervals determined by the cumulative drawing distance. vpype…

Generating beautiful Python API documentation with Sphinx AutoAPI

Following a recent discussion on Twitter, I decided to take yet another deep dive in my Python projects' documentation and fix once and for all the issues I had with it. I first focused on the automatically-generated API reference section and this article details the results of my finding. Specifically, I’m using vsketch’s API reference, which I recently updated, as an example…

Sketch: fill test pattern generator

Hatch fills or pixel art plotting requires a rather precise estimate of your particular pen/paper combo’s stroke width. For example, this test pixel art plot would benefit from a slightly thinner pitch to avoid the visible overlap between neighbouring lines: There is no way around experience to find the optimal pitch. I’ve created the fill_test sketch to create custom charts with test…

How to scale a grid on a page for uniform margins?

The problem Several generative art algorithms, such as Truchet tiles, use a regular grid of square cells. For example, check this interactive demo from the Generative Design book or these few pieces of mine. Now, let’s say you want to generate an iteration of your algorithm for printing or plotting such that all margins around the grid are the same for the given paper size. You can of course…

Annotated Release Notes: vpype 1.10

I originally intended vpype 1.10 to be a ‘quick-and-dirty’, bug-fix-only release but it ended up being quite substantial, so let’s dive in. New features and improvements Improved support for layer pen width and opacity in the viewer (#448) The “Pen Width” and “Pen Opacity” menus are now named “Default Pen Width” and “Default Pen…

TIL: aligning horizontal or vertical lines to the pixel grid with OpenGL

When I started using my new M1 Max MacBook Pro in December, a bunch of vpype’s tests started to fail. The failing tests were all image-based: an image is rendered and then compared to a previously-generated, reference image. This process is made easy thanks to this Pytest fixture. In this case, the reference images were generated long ago on my previous, Intel/AMD-based MacBook Pro. This GIF…

Annotated Release Notes: vpype 1.9

vpype \ text -l1 -p 0 3.5cm 'Custom layer name/color/pen width' \ text -l2 -p 5cm 4.5cm -s 24 'Properties' \ text -l2 -p 2cm 5.5cm -s 20 'Expressions' \ text -l1 -p 6cm 6.5cm -s 24 'Better/new block processors' \ text -l2 -p 3cm 8cm '...and much more!' \ layout -m 0.3cm -l 10x3.5cm \ penwidth -l2 0.5mm \ color -l2 '%Color(226,200,0)%' \ color -l1 '%Color(3,118,207)%' \ color -l1 blue \ show --…

First post

Hello again, world.

About

My name is Antoine Beyeler. I am a multidisciplinary engineer and entrepreneur with a PhD in flying robotics and interests in software, aviation, photography, generative art, plotters, and home automation. I live in Lausanne, Switzerland 🇨🇭. I recently joined Rerun.io as software engineer to learn Rust 🦀 while developing visualisation frameworks and products for computer vision and robotics…