Starplot logo

Starplot

Archives
Subscribe
September 29, 2026

Starplot v0.21 is here!

Starplot 0.21 is now available, and it's the biggest release yet.

Here's a look at what's new, and what to check before you upgrade:

πŸŽοΈπŸ’¨ SVG-first rendering engine

The BIG change: Starplot no longer renders through matplotlib + cartopy. It now has its own SVG-first rendering engine that comes with many benefits and new features:

  • At least 2x faster plotting when exporting to SVG
  • Gradient fills on markers, polygons, and backgrounds
  • Optimized SVG files β€” easier and faster to work with in Inkscape, Affinity Designer, Illustrator, and other design tools
  • A lighter install β€” no more matplotlib/cartopy dependency, and we also dropped bundled fonts from the PyPI package to shrink it further
  • A strong foundation for what's next β€” the new engine makes it much easier for us to build features like interactivity and animation

Exporting to PNG is also still supported, but requires the Cairo graphics library. It should be easy to install on most operating systems.

🎨 Gradient fills, everywhere

image.png Gradients were previously limited to the plot background. But in version 0.21, a GradientStyle can be set as the fill of a marker, a polygon, the axes background, or the figure background.

There's also a new built-in callable for creating a gradient fill on star markers, based on the star's B-V index (used in the horizon plot above).

Also illustrated above: a new ground() function on horizon plots.

πŸ—ΊοΈ New Projection + Tissot function

  • Gnomonic projection is now available for map plots
  • tissot() β€” a new plot method that draws a Tissot's indicatrix, a grid of equal-size circles on the plot that helps you visualize the distortion of a projection.

β˜‘οΈ More consistent styling framework

The styling framework has also been refactored to make field names more consistent β€” e.g. color and edge_color are now just fill and stroke everywhere. These names match standard SVG terminology which makes it easier to understand Starplot's styling framework if you're familiar with CSS (or using an LLM).

🐍 Python 3.14 support

Starplot now officially supports Python 3.14.

πŸ“š New & Improved Documentation

  • New Styling Explorer
  • New page on using gradients
  • New page on using color
  • New page on plot layout
  • Updated tutorial page

⚠️ A few breaking changes ⚠️

Because so much of the rendering internals changed, v0.21 does include some breaking changes β€” mainly around the styling framework, but also how export() works now that matplotlib/cartopy are gone. These changes were made deliberately, to make the API more consistent going forward.

All the breaking changes have been summarized in a migration guide:

➑️ Migrating to v0.21


πŸ™‹ Help Wanted

Want to help make Starplot better? Here are a few things we need help with right now:

  • Anything on our roadmap. If you're interested in helping with any of these, let me know, and I'd be happy to help you get started with contributing (setting up your environment, etc).
  • Check for errors on the Gaia DR3 catalog builder
  • Adding more language translations - details here
  • Creating more catalog builders

Read more about contributing here ↗️


πŸ’™ Show your support for Starplot

  • All Sky Map - made with Starplot!
  • Starplot stickers

As always, if you notice any bugs or have questions, please open an issue on GitHub, join us on Discord, or just reply to this email.

Happy Starplotting!!

Steve Berardi

[email protected]

Don't miss what's next. Subscribe to Starplot:
Older β†’ Starplot - Italian translation now available!
Discord
starplot.dev
Powered by Buttondown, the easiest way to start and grow your newsletter.