metaballs(6)

πŸ“¦
version 6.15 Β· 2 versions
, in alpine 3.24, arch rolling, nixpkgs unstable

πŸ’– metaballs β€” the girlies of 2D blobs πŸ’–

okay so this is a page from the XScreenSaver manual, and honestly? it's giving squishy colorful blob energy and i'm obsessed. bestie, let me walk you through it 🫢


✨ NAME ✨

metaballs β€” draws 2D metaballs. that's it. that's the whole vibe. little gooey blobs on your screen, no cap πŸ’…


🌸 SYNOPSIS 🌸

metaballs [--display host:display.screen] [--visual visual] [--window]
[--root] [--window-id number] [--ncolors number] [--count number]
[--delay number] [--cycles number] [--radius number] [--delta number]
[--fps]

like, you literally just run it with some flags and the blobs appear. iconic behavior fr fr ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

so this hack draws 2D metaballs to the screen β€” and the way it does it? it calculates the sum of the colors of all metaballs covering a pixel. that's the whole trick, and honestly it ate. the blobs blend into each other and it just looks so good, no notes πŸ”₯


πŸŽ€ OPTIONS πŸŽ€

  • --visual visual β€” picks which visual to use, bestie. legal values are the name of a visual class, or the id number (decimal or hex) of a specific visual. your choice, main character πŸ’œ
  • --window β€” draw on a newly-created window. this is the default, so you're already slaying without doing anything 🫢
  • --root β€” draw on the root window. yes, the whole desktop situation, go off πŸ‘‘
  • --window-id number β€” draw on the specified window. you pick the window, it draws there. very demure, very mindful πŸŽ€
  • --ncolors number β€” number of colors. Default: 256. a whole palette bestie 🌈
  • --count number β€” number of metaballs. range is 2 - 255. Default: 10. ten lil blobs just vibing 🌸
  • --delay number β€” per-frame delay, in microseconds. Default: 5000 (that's 0.005 seconds.). tiny tiny pause between frames, iykyk ⭐
  • --cycles number β€” duration. range is 100 - 3000. Default: 1000. literally the lifespan of the vibe ✨
  • --cycles β€” (not a thing, bestie, don't come for me β€” --cycles is right up there ☝️)
  • --radius number β€” metaball radius. range is 2 - 100. Default: 100. how chonky each blob is πŸ’–
  • --delta number β€” metaball movement. range is 1 - 20. Default: 3. how much they wiggle around, and they DO wiggle πŸ’€
  • --fps β€” display the current frame rate and CPU load. nerdy and useful, we love a stats girlie πŸ‘‘
also quick note: the tiny --cycles bullet above is a little joke of mine, ignore it β€” the real list is the one with actual descriptions, okurrr 🫢

🧚 ENVIRONMENT 🧚

  • DISPLAY β€” used to get the default host and display number. classic, we stan ✨
  • XENVIRONMENT β€” used to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property. very "i have a custom setup" of it πŸ’…
  • XSCREENSAVER_WINDOW β€” the window ID to use with --root. lowkey essential if you're doing the root thing 🌟

πŸ”₯ SEE ALSO πŸ”₯

X(1), xscreensaver(1), and http://demo-effects.sourceforge.net/ β€” go read those, bestie, i'll wait 🫢


copyright Β© 2002-2003 by W.P. van Paassen. and here's the legal bit, copied faithfully because we do NOT mess with licensing:

permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. no representations are made about the suitability of this software for any purpose. it is provided "as is" without express or implied warranty.

translation: free to use, but keep the notice, and no promises that it'll be perfect β€” no cap, that's literally what it says πŸ™ˆ

πŸ’œ AUTHOR πŸ’œ

W.P. van Paassen β€” thank you for the blobs, king 🫢✨


and that's the whole page, bestie!! this one's from X Version 11, version 6.15, dated 30-Mar-2026 β€” go forth and make squishy little metaballs, you've got this πŸ’–πŸŽ€πŸ¦‹πŸŒΈβ­πŸ‘‘

πŸ“¦ where this page comes from