glschool(6x)
β¨ glschool β¨
okay bestie, so this is glschool from the XScreenSaver manual β a 3D schooling simulation and honestly? it's gorgeous. π
π NAME π
glschool β it's a 3D schooling simulation. fish. in 3D. schoolin'. that's the whole vibe. πππ
π SYNOPSIS π
glschool [--display host:display.screen] [--visual visual] [--window]
[--root] [--window-id number] [--wireframe] [--fps] [--delay number]
[--nfish number] [--maxvel number] [--minvel number] [--acclimit number]
[--avoidfact number] [--matchfact number] [--centerfact number]
[--targetfact number] [--minradius number] [--momentum number]
[--distexp number] [--goalchgf number] [--fog] [--drawgoal] [--drawbbox]
periodt. every single one of those flags is real and we're gonna go through ALL of them, no skipping, no cap. π
π DESCRIPTION π
So it uses the Craig Reynolds Boids algorithm to simulate a 3D school of fish. It's a lightly modified version of that algorithm, and the modification is that it also supports goal attraction β like, the fishies have somewhere to BE. iconic behavior honestly.
You can get so many different behaviors just by tweaking the parameters. Lowkey the fun part. BUT β and listen to me on this one bestie:
No sanity checking is performed on the command line params. So if you wanna pass negative accelerations, or a minimum velocity that's bigger than maximum velocity, or that sort of thingβ¦ the simulation will just try to digest it. π it will simply eat it. good luck to it.
Also, for peak aesthetics: it looks best with the highest number of fish that will still give you an FPS of > 25 or so. Find that sweet spot, it's giving optimized. β¨
π OPTIONS π
--visualvisual β Which visual to use. Legal values are the name of a visual class, OR the id number (decimal or hex) of one specific visual. your choice, queen.--windowβ Draw on a newly-created window. This is the default, so if you say nothing, this is what you get. π«Ά--rootβ Draw on the root window.--window-idnumber β Draw on the window you specify. very "I want it THERE" of you.--delaynumber β Per-frame delay, in microseconds. Default:20000(that's 0.020 seconds.).--wireframe|--no-wireframeβ Render in wireframe instead of solid. skeleton fish arc. π¦΄--fpsβ Display the current frame rate, CPU load, and polygon count. numbers go brrr. π₯--fog|--no-fogβ Whether to show foggy (cloudy) water. spooky murky vibes. π«οΈ--drawgoal|--no-drawgoalβ Whether to show the school's attraction goal. like a lil target the fishies are obsessed with.--drawbbox|--no-drawbboxβ Whether to show the bounding box.--fog|--no-fogβ Whether to show foggy (cloudy) water. (yes bestie, it's listed twice in the original. we're keeping BOTH. slay duplication π)--nfishnumber β Number of fish. Defaults to100--acclimitnumber β Acceleration limit. Defaults to8.0--minvelnumber β Minimum velocity. Defaults to1.0--maxvelnumber β Minimum velocity. Defaults to7.0(yep, the description says "Minimum velocity" right there in the source. copying it exactly, don't look at me π)--goalchgfnumber β Goal change frequency. Defaults to50(frames)--avoidfactnumber β Avoidance acceleration factor. Defaults to1.5--matchfactnumber β Match avg velocity acceleration factor. Defaults to0.15--centerfactnumber β School centering acceleration factor. Defaults to0.1--targetfactnumber β Target attraction acceleration factor. Defaults to80--distexpnumber β Distance weighting exponent. Defaults to2.2--momentumnumber β Momentum. Defaults to0.9
πΈ ENVIRONMENT πΈ
the environment variables said hi, bestie:
DISPLAYβ to get the default host and display number.XENVIRONMENTβ to get the name of a resource file that overrides the global resources stored in theRESOURCE_MANAGERproperty.XSCREENSAVER_WINDOWβ The window ID to use with--root.
π¦ SEE ALSO π¦
go read about boids fr fr, it's iconic π¦
π COPYRIGHT π
Copyright Β© 2005-2006 by David C. Lambert. 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.
likeβ¦ free to use, just don't remove the notice, and no promises it won't explode. standard. π
β AUTHOR β
David C. Lambert. the literal main character. π«Ά
and that's the whole page bestie!! this one shipped as part of X Version 11, version 6.17-1.fc44, dated 13-Oct-2026. go forth and make a beautiful school of fish, you've got this πβ¨π
π¦ where this page comes from
- fedora 44: xscreensaver-gl-extras 1:6.17-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms