Eyecandy: Turn your computer into an expensive lava lamp.

LSDino

Initial Release Date
February 9, 1996 (v0.53)
Color Palette
8/18b
Max Resolution
320x200
License Status
Open Source © Rob Viehland
Codebase
C, x86 Assembly
Platform(s)
MS-DOS, Linux
Author(s)
Rob Viehland (aka Dino)

Description

LSDino produces a wide array of 43 patterns and color cycles them while performing a variety of warps and distortions. Additional patterns can be created by combining the 45 base patterns in various ways either through configuration options or the programs random pattern mode.

Linux version were apparently available, but were not supported in the final 1.0b release due to use of x86 assembly. I've been unable to find any of the prior Linux releases.

Video

Screenshots

ScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshot

Downloads

Documentation

Help Output
LSDino Help: 

LSDino can be ran with or without options. The options allow you
to create custom screens by blending existing screens.  All options
are specified by a number and a prefix, except for the first, which
is just a number by its self.  The prefixes available are: 

	A - Average (First image is two times as strong)
	B - Blend from first image on top to second image on bottom
	D - Double Average, 1st image counted as image value & inverse
		image value, then averaged with the third
        G - averaGe (Equal strengths)
	H - distort Horizontal - Distorts based upon the X axis
	N - aNd - Performs a bit-wise AND between images
	O - Or - Performs a bit-wise OR between images
        P - Use a predefined screen from the image array (0-36)
	V - Performs a vertical distortion
	X - Performs an XOR between images
	Z - Performs a double-distortion, horizontal & vertical
        I - Ice Cream Distortion
        S - Swirl Distortion
 -seed@   - Set random seed to number after @ sign (no space)
 -delay@  - Set the delay value to number after @ (no space)
 -c###    - Set the color palette, # is from 0-C
 -rgb     - Be prompted to enter RGB values.
 -fx@#    - Force the palette / graphic effect to #
 -rand@#  - Run lsdino in random image form - this can give both
          - good and bad screens, but they're pretty neat.
LSDino
                                LSDino 386


        Welcome to LSDino v1.00 Beta...  This new version features some new
screens!  It's improving quickly!

These doc's are not (entirely) up to date, and I don't feel like updating
them.  This release is a copy I've been developing off-and-on for a long
time, and it doesn't have too much new stuff, but I'm basically throwing it
together and releasing it with one pretty cool new feature, the -rand option.

It works like this:

lsdino -rand@###

where number can be any number.  What it does is it combines pre-defined
screens in random and weird ways which can make some pretty cool looking
screens or screens which look like crap.  It's pretty neat all in all, I
suggest everyone tries it.  I like -rand@3 normally, you can try bigger numbers
for more screens to be added together or try smaller numbers (if you choose
one (or lower) then you'll just get 1 screen, so don't try one)
 

******************************************************************************
        This could possibly be the last version of LSDino to be released.
        Maybe at some point in the future I will pick it up again, maybe
        I'll try to do a Windows screen saver.  Who really knows, eh?

        So, for that reason, I have included the source code.
******************************************************************************

(Due to lack of demand, my laziness, and my addition of some assembly code in
this version, I am excluding linux support).

Description:

        LSDino falls under the catogory of 'eye candy' programs, similar to
AcidWarp and other programs in that catogory.  LSDino attempts to go further
than these programs by not only performing many varieties of palette rotation,
but also providing realtime graphics.  Currently, the composition of LSDino
is as such:
        37 screens.
                Many screens are combinations of other screens through ORs,
                XORs, ANDs, Averages, and weighted averages.  In addition
                to this, some screens are simple routines which a distortion
                routine ran over them to make them even cooler.

                All of these ways of combining screens can also be accessed
                from the command line, allowing you to create your own screens
                from pre-existing combinations.  (There are actually 40 or so
                different screens.  Many of these screens are not used by
                themselves because they're too plain, and are instead used
                in combinations which cuts down the number of the screens
                you actually see).

                For more information on these command line options, run
                LSDino with the -help option.

        4 real-time graphic effects.

                There are currently 3 different graphics effects which are
                used in LSDino.  These consist of the acid-effect, the box,
                and the warp.

                The acid effect causes your screen to slide, or ripple,
                become wavy.  However you think it is best described.
                These are similar to some of the visuals achived while under 
                the influence of a certian chemical, can you guess which one?

                The box contains the contents of the screen bouncing around,
                and inside the box is another box, repeating (theoritically)
                into infinity.

                The warp is a routine which just causes your screen to warp
                off in a weird, twisted manner, to a point where the screen
                is pratically unidentifiable.  Then, the screen begins to
                come back to it's normalness, all so smoothly it's hard to
                believe it ever got the warped.  This is a really cool looking
                effect, all owed to our friends the sine and cosine.


        Palette rotation

                ** NEW PALETTE METHOD - See in v.52 update for details **

                Like any program of this type, LSDino contains palette
                rotation, and originally that was all LSDino contained.
                There are 2 different ways I rotate the palette, and a third
                method to change colors.

                The first way is standard palette rotation (as of v.52 I made
                it so it only rotates in one direction so it looks more smooth)

                The second fades in several different bands of colors which
                run around at different speeds over the normal colors, all
                while a standard palette rotation is going on.  (This is
                best exemplifed by screen #8, which is straight lines from
                the center of the screen going out to all the edges.  To
                see this screen, type "LSDINO 8" or for the linux version
                "UXLSDINO 8")


        
That's all the documentation I feel like writing right now.  There will
be more in the future!


New since past betas:

v.54 Beta:
        New smooth screen modifier.  Screens will randomly be smoothed out to
        random amounts.  This can also be accessed through the '\' key within
        the program.

        Added in the ability for the real-time effects to be contained within
        a circle, and as the effect progresses the circle expands, and then
        contracts back down.

        The bouncing box routines have been changed to bouncing cirlce
        routines.  It looks alot better now (or at least *I* think it does)

v.53 Beta:

        The only reason this version is being released is because I am
        going home for the weekend, and want to put this on my web page
        so I can show it off to all my friends...  Yeah, I know, that kinda
        goes against the whole ego-loss thing!

        Did some minor optimizations that may or may not make a difference...

        Allowed pressing a key to abort the acid effects again...

        Added in new fade out routines for the boxes...

        Added in the ability to mask the bouncing box image.  Current masks
        include a pot leaf, I'm making a rash generalization on who this
        program will appeal to :)


v.52 Beta:

       
      * New Palette Stuff...  Now rather than having a palette broken up
        into 3 sections, each section being one color (and blending into
        the others) the palette will break up into 15 sections, 5 of which
        are one color, 5 another, etc...  They go in the order color 1,
        color 2, color3, color1 ,color 2, color 3... etc... until all 15
        have been filled in.

      * Added new screen, 'ice cream', common screen saver screen, why can't
        I have it too!?!?!?!?  Screen 40, also P31

      * Added New screen, screen 41, Also P32, it's just cool...
       
      * Added new screen, screen 42, Also P33, another cool one...

      * added screens 43-45, more cool screens, P34-P36 respectively...
        fixed old screen...  The Swirl no longer has a line accross it, it's
        replaced w/ a new swirl routine...
        
      * Added new options -full and -div, to force either the full palette or
        the divided palette.  Using the -full option will make LSDino run
        exactly as it has in the past (with regards to palettes, anyway).
        -div will make only use the new split palette, and not using either
        will cause it to be random.

      * New -c color option.  Allows you to specify a color to use.  Available
        colors are numbered from 0-8, and are as such:

        0       -       Red
        1       -       Green
        2       -       Blue
        3       -       Cyan
        4       -       Magenta
        5       -       Purple
        6       -       Off-Blue
        7       -       Black
        8       -       White

      * New interactive palette commands, using "QWERTYUIO", "ASDFGHJKL", and
        "123456789".

      * Each set of keys handles 1/3 of the palette. (There are normally 3
        colors used to form each palette).  The keys map to the colors above
        (ie Q,A,and 1 are all red.  W,S,2 are all blue, etc...)

      * Simple palette rotation only goes in one direction now.

      * Screen will continue even after some form of real graphics effects.

      * Added new force FX option.  This allows you to specify the palette
        rotation or real graphics effect, and this will be the only thing
        used throughout the run of the program.  Mainly used for my own
        development, but someone might have an interest in using it.

        When doing this I also changed the weighting scale for all the
        effects, hopefully this new weighting scale will be pretty cool.

        So, here's a little table which tells you the number you can use to
        force an effect, along with it's name or description, and the standard
        weighting it is given:


         Force #(s)       Name or Description           Std. Weighting

                1     -   Standard palette rotation          4/12
                2,5,6 -   'Acid' Effect                      3/12
                3     -   Compression                        1/12
                4     -   Distortion                         1/12
                7     -   Bouncing Box                       1/12
                8     -   Change Colors                      1/12
                9     -   Color Bars                         1/12

      * Further improved the sampling routines for the box by increasing
        the sampling range. (along w/ other general optimization to the
        box routine).

v.51 Beta:

        This is probably one of the coolest upgrades, and I myself am becoming
        more and more impressed by this program, so I hope you will too...


        (To view these screens, run either:
                lsdino #
              or
                uxlsdino #

         Where # is the given screen number).

        Or, just stare at LSDino long enough and they're bound to appear!

     *  Screen number 34:  Based on a new form of aligrothim, very cool,
                           but I can't think of a name for it. 
                Also Screen "P26" 
     *  Screen number 35:  "Slime"
                Also screen "P27"
     *  Screen number 36.  "Acid Curtains"
                Also screen "P28"
     *  Screen number 37   "Textured Acid Curtains"
                Also screen "P29"  This was actually the original acid curtians,
                        then I discovered a another way to do a similar screen,
                        but they are a little different.  I included both for
                        kicks.
     *  Screen number 38   No name :(
                Also screen "P30"

     *  Added new delay option for fast computers.  To use this, simply
        type in -delay@<time>, for example, to do a delay of 150 simply
        do this:
                lsdino -delay@150

        For each value of delay you specify, 1000 useless additions are done.
        The reason for this, rather than a time based delay, is that the PC
        only has a resolution of 1/18th second, and that just doesn't provide
        good enough delays.  Set it to what you want, or set up a batch file
        or shell script that will run it w/ the delay automagically...
        The default delay is 100, which works pretty nice on my 486 DX2/66.

     *  Fixed the bug which caused random bands of blackness to appear in the
        palette.

v.5 Beta

        Both Linux & DOS versions from the same source, with one platmore
independent source file & one platform dependent source file.  This means
that both versions will be equal in functionality, and will only differ in
their random number generators.
        The DOS version now is in 32-bit protected mode, which means it
requires a 386 or better computer.  This causes an improvement in performance
and available memory for cool effects.

        There's probably been some other stuff, that I just don't realize.
I made some minor changes in the source code, which effect proportions of
certian effects.  For example, the ratios of the appearance of certian effects
has changed.  
Source
        This source is provided as is.  All *.h files (except lsdino.h)
        need to be put into a lsdincl directory.  So do that and you can
        compile it.  It is written with Symantec C(++) (the ++ part isn't
        used)

        Distribution Policies:

                You may feel free to modify & distribute LSDino on the
        following conditions:
                A) You include the source code with all distributions.
                   This is limited merely to the LSDino source code.  If you
                   wish not to distribute your additions you may optionally
                   distribute them in a pre-compiled format.  This is lame
                   though, and I hope no one does it.  But none the less,
                   what you distribute most be compilable for the user who
                   recieves it.
                B) You give me credit where my credit is due.
        Optional stuff which would be cool:
                A) Send me e-mail where I can get a copy of your program
                B) Send me a copy of the distribution it's self!

Patterns

Here are samples of each of LSDino's 43 base patterns for reference. Note there are gaps at positions 29 and 33.

Screenshot0Screenshot1Screenshot2Screenshot3Screenshot4Screenshot5Screenshot6Screenshot7Screenshot8Screenshot9Screenshot10Screenshot11Screenshot12Screenshot13Screenshot14Screenshot15Screenshot16Screenshot17Screenshot18Screenshot19Screenshot20Screenshot21Screenshot22Screenshot23Screenshot24Screenshot25Screenshot26Screenshot27Screenshot28Screenshot30Screenshot31Screenshot32Screenshot34Screenshot35Screenshot36Screenshot37Screenshot38Screenshot39Screenshot40Screenshot41Screenshot42Screenshot43Screenshot44

External References

Discussion