Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: A project to make screensaver out of Turing's morphogenesis
- X-seq: zsh-users 21597
- From: Sebastian Gniazdowski <sgniazdowski@xxxxxxxxx>
- To: "Nikolay Aleksandrovich Pavlov (ZyX)" <kp-pav@xxxxxxxxx>
- Subject: Re: A project to make screensaver out of Turing's morphogenesis
- Date: Mon, 30 May 2016 14:04:59 +0200
- Cc: Zsh Users <zsh-users@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=yZr66aSs7pltkgsDkiriGyxnLJhF7VIGRIhaV7cP+lE=; b=jnuS/4Flqa+RUg8oorlJKnncxP9g07ONP5KK0pDfzIb5e8ODvu2xp9DUWdqwfSwX0d 9m+xISWAMkWi0sfF+SDAKS2YVdoIKo+C3UgZ2iKEryaytaWHRrPJab1zR/Rklkp3hDqX Y/dX/cdSyOIhBmTre6Mq09T8BZFIczrNTqlDbTjp93nhxOLYy1W28ada0zT3E596d8G0 yvFNOLBWjMusTwMILoQRoFB83a4eCET8VSyE0pqkl4Z9CbmZOn/71O9kzBkkNv2Lr63Q DJN9Tmb6p08gRoOQNVwSaHNjz9uCCm1cqGVjUu2HM8s3T1zLRpF9flpN1CKRIOykKcDf EANA==
- In-reply-to: <450061464484170@web2m.yandex.ru>
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
- References: <CAKc7PVBqbD+EdYg1Hs7mh6MLuomr+kOt4kOpuB-XfYSEg-s9SA@mail.gmail.com> <450061464484170@web2m.yandex.ru>
On 29 May 2016 at 03:09, Nikolay Aleksandrovich Pavlov (ZyX)
<kp-pav@xxxxxxxxx> wrote:
> 28.05.2016, 16:05, "Sebastian Gniazdowski" <sgniazdowski@xxxxxxxxx>:
>> Hello,
>> Zsh has floating point numbers, so it was possible to implement
>> Turing's morphogenesis in it:
>>
>> https://asciinema.org/a/47133
>>
>> I believe the images have special aesthetics because they resemble how
>> life is formed. Would be nice to have such a shell screen saver. For
>> example, on one my FreeBSD machine vt doesn't ever blank. But I don't
>> have experience with such software. It's nice to say "shell
>> screensaver", but:
>> - it should run only on active terminal (thought about remembering
>> last active terminal in a /tmp file via precmd)
>> - should run after some time (sched, will it play nice?)
>
> I would suggest to code this as separately as possible, maybe even as a separate plugin. I do not think that zsh is the right language to implement Turing’s morphogenesis, but I think that you are not the only one wanting a screensaver in a terminal.
The images are now quite nice:
https://asciinema.org/a/47242
It's nice to see such image when returning to my FreeBSD box. Also
added basic Mandelbrot set generation. What I want to say is that
screen saver needs images, images often need math. That said, you may
be right that Zsh isn't proper language. The code is slow. Takes 60
seconds on 600 MHz Pentium M machine, 11 seconds on 2,3 GHz Core i5.
Had to use hashes because arrays do not store lengths. Wonder why the
code cannot run faster, the function solve_one_iteration isn't that
large and complex. It's in fact very simple.
> So the idea is that code which deduces when to run the screensaver, switches to alternate screen, renders the screensaver and disables it should know a single thing about Turing’s morphogenesis: that it needs to run `$SCREENSAVER_COMMAND $LINES $COLUMNS` to get the screensaver rendered.
The basic Mandelbrot generation shows how to make a new screen saver:
https://github.com/psprint/zsh-morpho/blob/master/zmandelbrot
One standard block of code that handles traps, alternate screen,
cursor hiding, plus one plain loop. The code handles external
commands, running the already existing "cmatrix" is possible via
single zstyle. More info at project's page:
https://github.com/psprint/zsh-morpho
Best regards,
Sebastian Gniazdowski
Messages sorted by:
Reverse Date,
Date,
Thread,
Author