[Pharo-project] The Morphic 3 project
Hi Folks, I'm new to this list, but many of you already know me. Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see. I also want to thank publicly to Stef Ducasse and ESUG, as they are sponsoring Morphic 3 via the "support your project" program, described in http://www.esug.org/Promotion/Project . Thanks ESUG! Comments welcome. Cheers, Juan Vuletich
Hi Juan, This looks really exiting! How do you get the actual pixels drawn? Is this implemented in Smalltalk? Did you write primitives to do that? Are you using external libraries? How does it compare performance wise with the current rendering? Lukas On 2 June 2010 13:43, Juan Vuletich <juan@jvuletich.org> wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at  www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
I also want to thank publicly to Stef Ducasse and ESUG, as they are sponsoring Morphic 3 via the "support your project" program, described in http://www.esug.org/Promotion/Project . Thanks ESUG!
Comments welcome.
Cheers, Juan Vuletich
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Lukas Renggli www.lukas-renggli.ch
Lukas Renggli wrote:
Hi Juan,
This looks really exiting!
How do you get the actual pixels drawn? Is this implemented in Smalltalk? Did you write primitives to do that? Are you using external libraries? How does it compare performance wise with the current rendering?
Lukas
Hi Lukas, I'm glad you like it. It is all done in Smalltalk. There are no external libraries. In fact, I developed new drawing algorithms that are better than those in Cairo, AGG, etc. So there are no libraries in existence I could call! The sampling theorem is about 80 years old. It is the base (together with Fourier analysis) of most of the DSP (Digital Signal Processing) field. It is therefore the basis of digital audio and photography. But it seems I am the first one to apply it to 2d rendering! I have been working on this for the last 3 years, after finishing my Ms.Sc. in CS on Image and Signal Processing. I had to establish the theoretical foundations, and come up with new algorithms to draw basic elements using this theory. What you see are the first practical result of all this work. It is still pure Smalltalk, and therefore, a bit slow. The lion takes 1.8 secs to draw on my 1.6GHz Mac mini. I am still changing the code a lot, but when it stabilizes I'll do a VM plugin. I guess it would be about 100 times faster. The other option is to use Igor's NativeBoost. That could perhaps be 10 times faster than the plugin, at the cost of portability and hand written asm (I'd done lots of asm in a previous life). Cheers, Juan Vuletich
On 2 June 2010 13:43, Juan Vuletich <juan@jvuletich.org> wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
I also want to thank publicly to Stef Ducasse and ESUG, as they are sponsoring Morphic 3 via the "support your project" program, described in http://www.esug.org/Promotion/Project . Thanks ESUG!
Comments welcome.
Cheers, Juan Vuletich
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
------------------------------------------------------------------------
No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.819 / Virus Database: 271.1.1/2912 - Release Date: 06/02/10 03:25:00
Hi Juan, This is __really__ cool. Cheers, Alexandre On 2 Jun 2010, at 08:16, Juan Vuletich wrote:
Lukas Renggli wrote:
Hi Juan,
This looks really exiting!
How do you get the actual pixels drawn? Is this implemented in Smalltalk? Did you write primitives to do that? Are you using external libraries? How does it compare performance wise with the current rendering?
Lukas
Hi Lukas,
I'm glad you like it. It is all done in Smalltalk. There are no external libraries. In fact, I developed new drawing algorithms that are better than those in Cairo, AGG, etc. So there are no libraries in existence I could call!
The sampling theorem is about 80 years old. It is the base (together with Fourier analysis) of most of the DSP (Digital Signal Processing) field. It is therefore the basis of digital audio and photography. But it seems I am the first one to apply it to 2d rendering! I have been working on this for the last 3 years, after finishing my Ms.Sc. in CS on Image and Signal Processing. I had to establish the theoretical foundations, and come up with new algorithms to draw basic elements using this theory. What you see are the first practical result of all this work.
It is still pure Smalltalk, and therefore, a bit slow. The lion takes 1.8 secs to draw on my 1.6GHz Mac mini. I am still changing the code a lot, but when it stabilizes I'll do a VM plugin. I guess it would be about 100 times faster. The other option is to use Igor's NativeBoost. That could perhaps be 10 times faster than the plugin, at the cost of portability and hand written asm (I'd done lots of asm in a previous life).
Cheers, Juan Vuletich
On 2 June 2010 13:43, Juan Vuletich <juan@jvuletich.org> wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
I also want to thank publicly to Stef Ducasse and ESUG, as they are sponsoring Morphic 3 via the "support your project" program, described in http://www.esug.org/Promotion/Project . Thanks ESUG!
Comments welcome.
Cheers, Juan Vuletich
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
------------------------------------------------------------------------
No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.819 / Virus Database: 271.1.1/2912 - Release Date: 06/02/10 03:25:00
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Actually, this is beyond cool :) Doru On 2 Jun 2010, at 17:42, Alexandre Bergel wrote:
Hi Juan,
This is __really__ cool.
Cheers, Alexandre
On 2 Jun 2010, at 08:16, Juan Vuletich wrote:
Lukas Renggli wrote:
Hi Juan,
This looks really exiting!
How do you get the actual pixels drawn? Is this implemented in Smalltalk? Did you write primitives to do that? Are you using external libraries? How does it compare performance wise with the current rendering?
Lukas
Hi Lukas,
I'm glad you like it. It is all done in Smalltalk. There are no external libraries. In fact, I developed new drawing algorithms that are better than those in Cairo, AGG, etc. So there are no libraries in existence I could call!
The sampling theorem is about 80 years old. It is the base (together with Fourier analysis) of most of the DSP (Digital Signal Processing) field. It is therefore the basis of digital audio and photography. But it seems I am the first one to apply it to 2d rendering! I have been working on this for the last 3 years, after finishing my Ms.Sc. in CS on Image and Signal Processing. I had to establish the theoretical foundations, and come up with new algorithms to draw basic elements using this theory. What you see are the first practical result of all this work.
It is still pure Smalltalk, and therefore, a bit slow. The lion takes 1.8 secs to draw on my 1.6GHz Mac mini. I am still changing the code a lot, but when it stabilizes I'll do a VM plugin. I guess it would be about 100 times faster. The other option is to use Igor's NativeBoost. That could perhaps be 10 times faster than the plugin, at the cost of portability and hand written asm (I'd done lots of asm in a previous life).
Cheers, Juan Vuletich
On 2 June 2010 13:43, Juan Vuletich <juan@jvuletich.org> wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
I also want to thank publicly to Stef Ducasse and ESUG, as they are sponsoring Morphic 3 via the "support your project" program, described in http://www.esug.org/Promotion/Project . Thanks ESUG!
Comments welcome.
Cheers, Juan Vuletich
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
------------------------------------------------------------------------
No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.819 / Virus Database: 271.1.1/2912 - Release Date: 06/02/10 03:25:00
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com "It's not how it is, it is how we see it."
On 2 June 2010 15:16, Juan Vuletich <juan@jvuletich.org> wrote:
Lukas Renggli wrote:
Hi Juan,
This looks really exiting!
How do you get the actual pixels drawn? Is this implemented in Smalltalk? Did you write primitives to do that? Are you using external libraries? How does it compare performance wise with the current rendering?
Lukas
Hi Lukas,
I'm glad you like it. It is all done in Smalltalk. There are no external libraries. In fact, I developed new drawing algorithms that are better than those in Cairo, AGG, etc. So there are no libraries in existence I could call!
The sampling theorem is about 80 years old. It is the base (together with Fourier analysis) of most of the DSP (Digital Signal Processing) field. It is therefore the basis of digital audio and photography. But it seems I am the first one to apply it to 2d rendering! I have been working on this for the last 3 years, after finishing my Ms.Sc. in CS on Image and Signal Processing. I had to establish the theoretical foundations, and come up with new algorithms to draw basic elements using this theory. What you see are the first practical result of all this work.
It is still pure Smalltalk, and therefore, a bit slow. The lion takes 1.8 secs to draw on my 1.6GHz Mac mini. I am still changing the code a lot, but when it stabilizes I'll do a VM plugin. I guess it would be about 100 times faster. The other option is to use Igor's NativeBoost. That could perhaps be 10 times faster than the plugin, at the cost of portability and hand written asm (I'd done lots of asm in a previous life).
Last year i built an SVG API bindings. And i were able to render the Tiger at screen refresh rate (65Hz). The rendering throughput is even higher than that, but it looks like SVG implementation limits the frame rate to screen refresh rate as maximum :) Sure thing, the quality is not that high as yours, but still, it shows how much speed-up we could achieve, if we put all processing on GPU side. It would be cool if we could cooperate and implement this stuff using OpenGL as backend.
Cheers, Juan Vuletich
On 2 June 2010 13:43, Juan Vuletich <juan@jvuletich.org> wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at  www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
I also want to thank publicly to Stef Ducasse and ESUG, as they are sponsoring Morphic 3 via the "support your project" program, described in http://www.esug.org/Promotion/Project . Thanks ESUG!
Comments welcome.
Cheers, Juan Vuletich
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 ------------------------------------------------------------------------
No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.819 / Virus Database: 271.1.1/2912 - Release Date: 06/02/10 03:25:00
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
Igor Stasenko wrote:
On 2 June 2010 15:16, Juan Vuletich <juan@jvuletich.org> wrote:
Lukas Renggli wrote:
Hi Juan,
This looks really exiting!
How do you get the actual pixels drawn? Is this implemented in Smalltalk? Did you write primitives to do that? Are you using external libraries? How does it compare performance wise with the current rendering?
Lukas
Hi Lukas,
I'm glad you like it. It is all done in Smalltalk. There are no external libraries. In fact, I developed new drawing algorithms that are better than those in Cairo, AGG, etc. So there are no libraries in existence I could call!
The sampling theorem is about 80 years old. It is the base (together with Fourier analysis) of most of the DSP (Digital Signal Processing) field. It is therefore the basis of digital audio and photography. But it seems I am the first one to apply it to 2d rendering! I have been working on this for the last 3 years, after finishing my Ms.Sc. in CS on Image and Signal Processing. I had to establish the theoretical foundations, and come up with new algorithms to draw basic elements using this theory. What you see are the first practical result of all this work.
It is still pure Smalltalk, and therefore, a bit slow. The lion takes 1.8 secs to draw on my 1.6GHz Mac mini. I am still changing the code a lot, but when it stabilizes I'll do a VM plugin. I guess it would be about 100 times faster. The other option is to use Igor's NativeBoost. That could perhaps be 10 times faster than the plugin, at the cost of portability and hand written asm (I'd done lots of asm in a previous life).
Last year i built an SVG API bindings. And i were able to render the Tiger at screen refresh rate (65Hz). The rendering throughput is even higher than that, but it looks like SVG implementation limits the frame rate to screen refresh rate as maximum :)
Sure thing, the quality is not that high as yours, but still, it shows how much speed-up we could achieve, if we put all processing on GPU side.
It would be cool if we could cooperate and implement this stuff using OpenGL as backend
Indeed. Although I wonder if OpenGL is general enough to implement it... I mean, the only standard operation I do is to blend pixels... Everything else is done with new algorithms. Without being an OpenGL expert, I believe that CUDA / OpenCL would be better suited. Cheers, Juan Vuletich
On 4 June 2010 16:26, Juan Vuletich <juan@jvuletich.org> wrote:
Igor Stasenko wrote:
On 2 June 2010 15:16, Juan Vuletich <juan@jvuletich.org> wrote:
Lukas Renggli wrote:
Hi Juan,
This looks really exiting!
How do you get the actual pixels drawn? Is this implemented in Smalltalk? Did you write primitives to do that? Are you using external libraries? How does it compare performance wise with the current rendering?
Lukas
Hi Lukas,
I'm glad you like it. It is all done in Smalltalk. There are no external libraries. In fact, I developed new drawing algorithms that are better than those in Cairo, AGG, etc. So there are no libraries in existence I could call!
The sampling theorem is about 80 years old. It is the base (together with Fourier analysis) of most of the DSP (Digital Signal Processing) field. It is therefore the basis of digital audio and photography. But it seems I am the first one to apply it to 2d rendering! I have been working on this for the last 3 years, after finishing my Ms.Sc. in CS on Image and Signal Processing. I had to establish the theoretical foundations, and come up with new algorithms to draw basic elements using this theory. What you see are the first practical result of all this work.
It is still pure Smalltalk, and therefore, a bit slow. The lion takes 1.8 secs to draw on my 1.6GHz Mac mini. I am still changing the code a lot, but when it stabilizes I'll do a VM plugin. I guess it would be about 100 times faster. The other option is to use Igor's NativeBoost. That could perhaps be 10 times faster than the plugin, at the cost of portability and hand written asm (I'd done lots of asm in a previous life).
Last year i built an SVG API bindings. And i were able to render the Tiger at screen refresh rate (65Hz). The rendering throughput is even higher than that, but it looks like SVG implementation limits the frame rate to screen refresh rate as maximum :)
Sure thing, the quality is not that high as yours, but still, it shows how much speed-up we could achieve, if we put all processing on GPU side.
It would be cool if we could cooperate and implement this stuff using OpenGL as backend
Indeed. Although I wonder if OpenGL is general enough to implement it... I mean, the only standard operation I do is to blend pixels... Everything else is done with new algorithms. Without being an OpenGL expert, I believe that CUDA / OpenCL would be better suited.
I don't know. But i don't think it is too different from many other techniques, which implemented using shaders. The rendering algorithms is highly parallelisable, that's why GPU is best place where they should run. And i guess, your algorithms is not an exception. I see there are two separate stages for rendering: 1. rasterize the path to mask (including pixel coverage) 2. fill the mask with paint Both can be implemented quite efficiently on GPU.
Cheers, Juan Vuletich
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
On 02/06/2010 12:43, Juan Vuletich wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
This is awesome :) I'm wondering though, what you intend for the input side. There's a lot of touch screen and multitouch devices around now which would be nice to directly support in addition to keyboard + mouse, things like pinch-zoom on a ZUI would be cool :)
Woah, cool. ^^ On Wed, Jun 2, 2010 at 8:44 PM, Douglas Brebner <squeaklists@fang.demon.co.uk> wrote:
On 02/06/2010 12:43, Juan Vuletich wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at  www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
This is awesome :)
I'm wondering though, what you intend for the input side. There's a lot of touch screen and multitouch devices around now which would be nice to directly support in addition to keyboard + mouse, things like pinch-zoom on a ZUI would be cool :)
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Douglas Brebner wrote:
On 02/06/2010 12:43, Juan Vuletich wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
This is awesome :)
I'm wondering though, what you intend for the input side. There's a lot of touch screen and multitouch devices around now which would be nice to directly support in addition to keyboard + mouse, things like pinch-zoom on a ZUI would be cool :) Yes, that would be cool. I also thought about multi user multi touch tables, where I need to handle input form several fingers simultaneously, that can belong or not to the same hand (user). Also multiple standard and MIDI keyboards, continuous MIDI controllers, pen tablets, more "special" input devices, such as the voice and various devices designed for people with disabilities, etc... But I have done nothing of this yet.
Cheers, Juan Vuletich
finishing something is always taking time and this is great to see you making progress on that front. For the PhD it could be full time job to sell that. Did you identify potential research group? Stef
Douglas Brebner wrote:
On 02/06/2010 12:43, Juan Vuletich wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
This is awesome :)
I'm wondering though, what you intend for the input side. There's a lot of touch screen and multitouch devices around now which would be nice to directly support in addition to keyboard + mouse, things like pinch-zoom on a ZUI would be cool :) Yes, that would be cool. I also thought about multi user multi touch tables, where I need to handle input form several fingers simultaneously, that can belong or not to the same hand (user). Also multiple standard and MIDI keyboards, continuous MIDI controllers, pen tablets, more "special" input devices, such as the voice and various devices designed for people with disabilities, etc... But I have done nothing of this yet.
Cheers, Juan Vuletich
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Stéphane Ducasse wrote:
finishing something is always taking time and this is great to see you making progress on that front. For the PhD it could be full time job to sell that. Did you identify potential research group?
Stef
I'm trying to contact a research group on graphics at my university, but without luck so far. Cheers, Juna Vuletich
Douglas Brebner wrote:
On 02/06/2010 12:43, Juan Vuletich wrote:
Hi Folks,
I'm new to this list, but many of you already know me.
Morphic 3 is a deep redesign of the Morphic framework. It includes new rendering algorithms I developed that produce unparalleled visual quality. Really. This is the best 2d rendering in the world. You can take a look at www.jvuletich.org. I have been working a lot recently, and uploaded several very cool samples for you to see.
This is awesome :)
I'm wondering though, what you intend for the input side. There's a lot of touch screen and multitouch devices around now which would be nice to directly support in addition to keyboard + mouse, things like pinch-zoom on a ZUI would be cool :)
Yes, that would be cool. I also thought about multi user multi touch tables, where I need to handle input form several fingers simultaneously, that can belong or not to the same hand (user). Also multiple standard and MIDI keyboards, continuous MIDI controllers, pen tablets, more "special" input devices, such as the voice and various devices designed for people with disabilities, etc... But I have done nothing of this yet.
Cheers, Juan Vuletich
Juan Vuletich wrote:
Yes, that would be cool. I also thought about multi user multi touch tables, where I need to handle input form several fingers simultaneously, that can belong or not to the same hand (user). Also multiple standard and MIDI keyboards, continuous MIDI controllers, pen tablets, more "special" input devices, such as the voice and various devices designed for people with disabilities, etc... But I have done nothing of this yet.
Cheers, Juan Vuletich
On a related note... when I went to your website and looked at the svg samples, there is only one link for each pair of images; for example, both lion pictures are linked to: http://www.jvuletich.org/Morphic3/lionx.svg This is the same for all pictures, so it is hard to compare in an SVG viewer ;) - Brian
Brian Brown wrote:
Juan Vuletich wrote:
Yes, that would be cool. I also thought about multi user multi touch tables, where I need to handle input form several fingers simultaneously, that can belong or not to the same hand (user). Also multiple standard and MIDI keyboards, continuous MIDI controllers, pen tablets, more "special" input devices, such as the voice and various devices designed for people with disabilities, etc... But I have done nothing of this yet.
Cheers, Juan Vuletich
On a related note... when I went to your website and looked at the svg samples, there is only one link for each pair of images; for example, both lion pictures are linked to:
http://www.jvuletich.org/Morphic3/lionx.svg
This is the same for all pictures, so it is hard to compare in an SVG viewer ;)
- Brian
My work is not about creating svg files but about rendering them. The links are the same because they point to the original svg (vector graphics) file used to render both in Inkscape and in Morphic 3. If you want to save the rendered versions, your web browser should allow something like right click / Save image As... Cheers, Juan Vuletich
Juan Vuletich wrote:
My work is not about creating svg files but about rendering them. The links are the same because they point to the original svg (vector graphics) file used to render both in Inkscape and in Morphic 3. If you want to save the rendered versions, your web browser should allow something like right click / Save image As...
Sorry, a misunderstanding on my part - I get it now!
participants (9)
-
Alexandre Bergel -
Brian Brown -
Douglas Brebner -
Igor Stasenko -
Juan Vuletich -
Lukas Renggli -
Richard Durr -
Stéphane Ducasse -
Tudor Girba