No announcement yet.

Reviving Stereo 3D

  • Filter
  • Time
  • Show
Clear All
new posts

  • Reviving Stereo 3D

    Now these days we got more 3D movies hitting theaters than ever before I guess, and the PS3 is able to do 3D gaming, 3DTVs out on the market, and NVIDIA has them 3D Vision glasses. Well I'm wondering if maybe we can bring back Stereoscopic 3D into MilkDrop. I think there could be a way the code could be worked out so MD can display 3D in full color with the 3D Vision glasses or whatever is there, unless there's already a way. Care to evaluate or state your point of view?
    HELLO BOYS!!! I'M BAAAAAAACK!!!!!!!!!!

  • #2
    Hi RLP

    That should certainly be possible but basically the code is no longer open source so it's all down to a few developers what they think is useful or not. Ryan Geiss quit the project long ago and has last been heard to work for Microsoft on their Natal project.

    I don't think there will be MD3. Any reasonable new development would have to break up with original milkdrop and go new ways, and it's unlikely this will happen under winamp. That said, it is possible clone milkdrop2, as this guy demonstrates.

    This is a self-written MilkDrop 2 Clone.Rendering is done with DirectX 11 and the equation solver is made in DirectCompute.Still a lot can be optimized.First...

    He used DirectX 11 as renderer and DirectCompute as equation solver. If he would make it available, that might be a basis for further devs but again I don't think this will happen. A future vis should support definition of geometries, rather than MD's flat mesh. Actually there are quite a few around such as plane9, mads by enthusiasts apparently, but they lead a niche existence.

    I made an attempt for a flight through a mandelbox maze in 3D, but it's red-green again.
    This forum is for sharing links to MilkDrop presets you've made or found. If you're authoring your own presets, please be sure to read the "Quality Assurance" section of the readme file before distributing your presets.


    • #3
      NIce to see someone redid MD2 to run on DX11. Maybe you are right though about the current devs for MD2 for Winamp, but the 3D could happen, but alas, Ryan Geiss left. He's actually working at Google now though. Appreciate your input, though, and as for your preset, I can't view it for 2 reasons:
      1: I don't have red-blue glasses, only green-magenta (came with Jakcass 3)
      2: ALL of your presets use shaders, and my FX5200 blew up over a year ago, I'm stuck with the old Intel chip built into my Dell, and I think it's ready to go too (Running MilkDrop, GTASA, PS1 Emu, etc.)
      HELLO BOYS!!! I'M BAAAAAAACK!!!!!!!!!!


      • #4
        I agree that shader2 presets won't work without a half decent video card, but red-cyan glasses should be fairly ok. You may try them with the screenshot attached.
        Attached Files


        • #5
          Hey guys,

          I made the DX11 clone of Milkdrop 2.
          Fun to see it mentioned here, without I even told anyone about my hobby project

          But my project is currently on hold, I'm busy with other stuff, I hope I can continue with it on the end of the year.
          But it took me a very long time to reverse engineer Milkdrop 2. And the current code is still very unstable and very dirty, so it has no use to share it with other developers.

          The biggest negative point is that it takes a few seconds to switch from 1 preset to another. This is because my equation solver uses directcompute shaders, and they all need to be compiled while loading a new preset. And this takes a long time (few seconds)

          My original plan was to convert it for Mac OS X, with GLSL (ati has an opensource project to convert HLSL to GLSL shaders). But that is still so much work. And then I wanted to extend it, to add 3D stuff and to make more use of the parallel power of the GPU.

          My project was originally based on Project-M (, but that project gives a lot of wrong results, a lot of bugs and things different than MilkDrop pffff, so I did a total rewrite.

          Uploaded with

          So yeah, don't expect a for example MD3 from me soon


          • #6
            Hi litheon

            Pity then, but I still need to say I was quite impressed by your clone. I stumbled across it when scanning youtube for milkdrop videos.
            The last MD source available was 1.1 I think, which was before AOL took over. Interesting to see it can be cloned anyway... how long did you work on it ?


            • #7
              Great job litheon! And thank you for sharing That's a fantastic start, I read your introduction & explanation of your progress on YouTube... I hope you will have the time & be motivated to keep working on it.

              Martin: You are awesome! Thank you so much! I love your presets, they are all fantastic. I have to admit I've gone in and tweaked out a number of them- just to kind of personalize them to my favorite colors or to respond to my music in a certain way; and I've replaced a number of the textures with my own.
              And I'm really intrigued & amazed by this 3D preset you've made. I've gotta find some of those glasses so I can check it out!

              Although I realize it's unlikely, I really hope that MD will be developed further in order to take advantage of the new features & capabilities of today's GPUs.


              • #8
                Great stuff litheon, I'm curious what the status of this is? I would really love to see the code get released. Since it's obvious that AOL refuses to work on MD2 any further, or release the code, it appears that your project is the only hope. Would you be willing to release it? Even if the code is in a messy state, some other developers (like myself) could possibly help in cleaning it up.

                Let us know, thanks.


                • #9
                  System Report

                  Time has passed and now I have encounted a similiar system requirement.

                  Steroscopic Visualization System Definition:
                  1.) System will process audio signal into stereoscopic video.
                  2.) System will support common audio file formats such as mp3, wav, ect...
                  3.) System will support MilkDrop plugin compatibility.
                  4.) System will support Line-in/Mic input.

                  Stereoscopic 3D playback has been added in VLC as part of the Google Summer of Code project (GSoC 2011).

                  I notice this file in the code:

                  Check this out:
                  * Open the module
                  * @param p_this: the filter object
                  * @return VLC_SUCCESS or vlc error codes
                  static int Open( vlc_object_t * p_this )
                  /* Create the object for the thread */
                  vlc_sem_init( &p_sys->ready, 0 );
                  p_sys->b_error = false;
                  p_sys->b_quit = false;
                  p_sys->i_width = var_InheritInteger( p_filter, "projectm-width" );
                  p_sys->i_height = var_InheritInteger( p_filter, "projectm-height" );
                  p_sys->i_channels = aout_FormatNbChannels( &p_filter-> );
                  vlc_mutex_init( &p_sys->lock );
                  p_sys->p_buffer = NULL;
                  p_sys->i_buffer_size = 0;
                  p_sys->i_nb_samples = 0;

                  * Do the actual work with the new sample
                  * @param p_aout: audio output object
                  * @param p_filter: filter object
                  * @param p_in_buf: input buffer
                  * @param p_out_buf: output buffer
                  static block_t *DoWork( filter_t *p_filter, block_t *p_in_buf )
                  filter_sys_t *p_sys = p_filter->p_sys;

                  vlc_mutex_lock( &p_sys->lock );
                  if( p_sys->i_buffer_size > 0 )
                  p_sys->i_nb_samples = __MIN( p_sys->i_buffer_size,
                  p_in_buf->i_nb_samples );

                  const float *p_src = (float*)p_in_buf->p_buffer;
                  for( unsigned i = 0; i < p_sys->i_nb_samples; i++ )
                  float v = 0;
                  for( int j = 0; j < p_sys->i_channels; j++ )
                  v += p_src[p_sys->i_channels * i + j];
                  p_sys->p_buffer[i] = v / p_sys->i_channels;
                  vlc_mutex_unlock( &p_sys->lock );

                  return p_in_buf;

                  Compilation Status: TODO
                  Compatibility report: TODO

                  In the event of failure, I will rewrite this from scratch using the latest VLC and project-m codebase.