The board has been chewing over the sensible options for future graphics in Squeak and would like to engage the general community. We’ve had a lot of exciting projects over the years and failed to make much good use of them for whatever reason. What should we do to improve things - OpenGL? Nile? Skia? WishFulfillmentGraphics 3.0 ?
So, if you’re interested, please try to join us at a google hangout next weds @ 10am PDT - I’ll send out an invitation link then since that seems to be how it works these days.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Testicle (n.), a humorous question on an exam.
Tim Rowledge wrote on: Mon, 18 Sep 2017 17:35:41 -0700
The board has been chewing over the sensible options for future graphics in Squeak and would like to engage the general community. We?ve had a lot of exciting projects over the years and failed to make much good use of them for whatever reason. What should we do to improve things - OpenGL? Nile? Skia? WishFulfillmentGraphics 3.0 ?
So, if you?re interested, please try to join us at a google hangout next weds @ 10am PDT - I?ll send out an invitation link then since that seems to be how it works these days.
Would next weds mean September 20 or 27? The first case would be the same time as the board meeting, right?
Thanks for organizing this!
-- Jecel
Ack! 27th, definitely.
/tim {insert witticism here}
On Sep 19, 2017, at 11:36 AM, Jecel Assumpcao Jr. jecel@merlintec.com wrote:
Tim Rowledge wrote on: Mon, 18 Sep 2017 17:35:41 -0700
The board has been chewing over the sensible options for future graphics in Squeak and would like to engage the general community. We?ve had a lot of exciting projects over the years and failed to make much good use of them for whatever reason. What should we do to improve things - OpenGL? Nile? Skia? WishFulfillmentGraphics 3.0 ?
So, if you?re interested, please try to join us at a google hangout next weds @ 10am PDT - I?ll send out an invitation link then since that seems to be how it works these days.
Would next weds mean September 20 or 27? The first case would be the same time as the board meeting, right?
Thanks for organizing this!
-- Jecel
On 19-09-2017, at 11:23 PM, Tim tim@rowledge.org wrote:
Ack! 27th, definitely.
Here we are - https://hangouts.google.com/hangouts/_/iaeq6ltifvhytpagfy2jjm3pkye
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful random insult:- Ought to have a warning label on his forehead.
Here we are - https://hangouts.google.com/hangouts/_/iaeq6ltifvhytpagfy2jjm3pkye
Plenty of room in the hot tub... come and join us
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful Latin Phrases:- Utinam barbari spatium proprium tuum invadant! = May barbarians invade your personal space!
The meeting has just ended after two hours and a half. Thanks again, Tim, for organizing this! We had six particpants.
I created this sort of agenda: ----------------------------- we need Squeak Graphics to be:
1) pretty 2) fast 3) everywhere 4) easy 5) compatible ------------------------------
The focus of the Board meetings so far has been on the first 3 items.
Item 1 was what started all this. Tim needs better quality graphics for his virtual dials. Moving from bitmap graphics to vectors with some nice rendering scheme like Juan's Morphic 3 would help. The VPRI people produced Nile/Gezira which could adopt the Morphic 3 rendering algorithm. Craig has been doing interesting stuff with SqueakJS including WebGL.
To make it fast we need to make use of GPUs and multiple cores. Juan has been using OpenCL in his own work and Dan wants to have a version of Nile use SPIR-V (essentially a binary version of OpenCL). Unfortunately some platforms we are interested in don't have OpenCL nor even the desktop version of OpenGL. The most common denominator is OpenGL ES 2.0 from 2007.
Lawson showed two Youtube videos he made in 2012 combining OpenGL and Morphic.
Merik mentioned the KWorld and KScript work from VPRI that goes with Nile. Tweak was also discussed. This time we didn't go into what is being done in Pharo except for a brief mention of the Sparta / Moz2D work.
All of the old OpenGL stuff in Squeak used the original fixed pipeline model but OpenGL ES 2 is incompatible with that is uses shaders for everything. A simple interface to that has the problem of shaders being black boxes in the form of Squeak strings that get passed to the drivers without allowing any kind of debugging. One solution would be to have an OpenGL ES implementation in Squeak which could be used both for debugging applications and to enhance the Cog simulator so not only could it deal with x86 processors (via Bochs) but also with GPUs.
Obviously quite a bit more was discussed (some of it off topic) but I am trying to keep this short. I plan to create a "map" showing MVC, Self Morphic, Squeak Morphic and so on as software stacks in the style of OSI network models. Tihs should help with further discussions.
See you next time! -- Jecel
URLs for some of the things we discussed -
Donations https://pharo.org/contribute is the equivalent to the Python thing
These are two papers about World and KScript http://www.vpri.org/pdf/m2013003_ksapps.pdf http://www.vpri.org/pdf/tr2013002_KSonward.pdf
Two of Lawson’s videos, referring to opengl experiments https://www.youtube.com/watch?v=nSLZKIXeXR4&list=PL6601A198DF14788D&... https://www.youtube.com/watch?v=TsJmBwi9lDY&index=52&list=PL6601A198...
https://pharoweekly.wordpress.com/2016/04/30/new-opengl-bindings-for-pharo-5...
A couple of other points With COG able to create and install/run code we could imagine generating a lot more code dynamically instead of having (some) plugins. Even without making use of GPUs we could benefit from separate threads running graphics operations. Many-core systems are on the immediate horizon; not merely four or eight but 50+. ARM cpus can be printed on plastic roll for (supposedly) 1c each.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim USER ERROR: replace user and press any key to continue.
Jecel,
Thanks for this excellent summary, and thanks to Tim for organizing the discussion. I was not able to be there, so it is really good to see your notes here.
Dave
On Wed, Sep 27, 2017 at 05:33:15PM -0300, Jecel Assumpcao Jr. wrote:
The meeting has just ended after two hours and a half. Thanks again, Tim, for organizing this! We had six particpants.
I created this sort of agenda:
we need Squeak Graphics to be:
- pretty
- fast
- everywhere
- easy
- compatible
The focus of the Board meetings so far has been on the first 3 items.
Item 1 was what started all this. Tim needs better quality graphics for his virtual dials. Moving from bitmap graphics to vectors with some nice rendering scheme like Juan's Morphic 3 would help. The VPRI people produced Nile/Gezira which could adopt the Morphic 3 rendering algorithm. Craig has been doing interesting stuff with SqueakJS including WebGL.
To make it fast we need to make use of GPUs and multiple cores. Juan has been using OpenCL in his own work and Dan wants to have a version of Nile use SPIR-V (essentially a binary version of OpenCL). Unfortunately some platforms we are interested in don't have OpenCL nor even the desktop version of OpenGL. The most common denominator is OpenGL ES 2.0 from 2007.
Lawson showed two Youtube videos he made in 2012 combining OpenGL and Morphic.
Merik mentioned the KWorld and KScript work from VPRI that goes with Nile. Tweak was also discussed. This time we didn't go into what is being done in Pharo except for a brief mention of the Sparta / Moz2D work.
All of the old OpenGL stuff in Squeak used the original fixed pipeline model but OpenGL ES 2 is incompatible with that is uses shaders for everything. A simple interface to that has the problem of shaders being black boxes in the form of Squeak strings that get passed to the drivers without allowing any kind of debugging. One solution would be to have an OpenGL ES implementation in Squeak which could be used both for debugging applications and to enhance the Cog simulator so not only could it deal with x86 processors (via Bochs) but also with GPUs.
Obviously quite a bit more was discussed (some of it off topic) but I am trying to keep this short. I plan to create a "map" showing MVC, Self Morphic, Squeak Morphic and so on as software stacks in the style of OSI network models. Tihs should help with further discussions.
See you next time! -- Jecel
Hi, there.
Here are some thoughts that might help in the next brainstorming(s):
- The canvas abstraction (i.e. "draw line from to" instead of "put/copy pixels") has been part of Squeak/Morphic since 1999, which is almost the beginning. - That canvas abstraction should be extracted from Morphic and moved into Squeak's base system because it is not inherent to what Morphic accomplishes in terms of tangibility, direct manipulation, and interactivity for the Squeak environment. - Text layouting (i.e. Paragraph or Morphic3's NewParagraph) should also be moved into Squeak's base system for the same reason. - Take a look at Squeak's PostScriptCanvas to further reason about the potential of Morphic getting OpenGL support. Tim Felgentreff made it work again a few weeks ago. That export still has its limitations because there is code that relies on pixel information.
:-)
Best, Marcel Am 28.09.2017 04:30:47 schrieb David T. Lewis lewis@mail.msen.com: Jecel,
Thanks for this excellent summary, and thanks to Tim for organizing the discussion. I was not able to be there, so it is really good to see your notes here.
Dave
On Wed, Sep 27, 2017 at 05:33:15PM -0300, Jecel Assumpcao Jr. wrote:
The meeting has just ended after two hours and a half. Thanks again, Tim, for organizing this! We had six particpants.
I created this sort of agenda:
we need Squeak Graphics to be:
- pretty
- fast
- everywhere
- easy
- compatible
The focus of the Board meetings so far has been on the first 3 items.
Item 1 was what started all this. Tim needs better quality graphics for his virtual dials. Moving from bitmap graphics to vectors with some nice rendering scheme like Juan's Morphic 3 would help. The VPRI people produced Nile/Gezira which could adopt the Morphic 3 rendering algorithm. Craig has been doing interesting stuff with SqueakJS including WebGL.
To make it fast we need to make use of GPUs and multiple cores. Juan has been using OpenCL in his own work and Dan wants to have a version of Nile use SPIR-V (essentially a binary version of OpenCL). Unfortunately some platforms we are interested in don't have OpenCL nor even the desktop version of OpenGL. The most common denominator is OpenGL ES 2.0 from 2007.
Lawson showed two Youtube videos he made in 2012 combining OpenGL and Morphic.
Merik mentioned the KWorld and KScript work from VPRI that goes with Nile. Tweak was also discussed. This time we didn't go into what is being done in Pharo except for a brief mention of the Sparta / Moz2D work.
All of the old OpenGL stuff in Squeak used the original fixed pipeline model but OpenGL ES 2 is incompatible with that is uses shaders for everything. A simple interface to that has the problem of shaders being black boxes in the form of Squeak strings that get passed to the drivers without allowing any kind of debugging. One solution would be to have an OpenGL ES implementation in Squeak which could be used both for debugging applications and to enhance the Cog simulator so not only could it deal with x86 processors (via Bochs) but also with GPUs.
Obviously quite a bit more was discussed (some of it off topic) but I am trying to keep this short. I plan to create a "map" showing MVC, Self Morphic, Squeak Morphic and so on as software stacks in the style of OSI network models. Tihs should help with further discussions.
See you next time! -- Jecel
Minor correction: NewParagraph is also not from Morphic3. To my knowledge, the biggest thing that got backported from Morphic3 to Squeak was the TextEditor.
Best, Marcel Am 28.09.2017 08:56:51 schrieb Marcel Taeumel marcel.taeumel@hpi.de: Hi, there.
Here are some thoughts that might help in the next brainstorming(s):
- The canvas abstraction (i.e. "draw line from to" instead of "put/copy pixels") has been part of Squeak/Morphic since 1999, which is almost the beginning. - That canvas abstraction should be extracted from Morphic and moved into Squeak's base system because it is not inherent to what Morphic accomplishes in terms of tangibility, direct manipulation, and interactivity for the Squeak environment. - Text layouting (i.e. Paragraph or Morphic3's NewParagraph) should also be moved into Squeak's base system for the same reason. - Take a look at Squeak's PostScriptCanvas to further reason about the potential of Morphic getting OpenGL support. Tim Felgentreff made it work again a few weeks ago. That export still has its limitations because there is code that relies on pixel information.
:-)
Best, Marcel Am 28.09.2017 04:30:47 schrieb David T. Lewis lewis@mail.msen.com: Jecel,
Thanks for this excellent summary, and thanks to Tim for organizing the discussion. I was not able to be there, so it is really good to see your notes here.
Dave
On Wed, Sep 27, 2017 at 05:33:15PM -0300, Jecel Assumpcao Jr. wrote:
The meeting has just ended after two hours and a half. Thanks again, Tim, for organizing this! We had six particpants.
I created this sort of agenda:
we need Squeak Graphics to be:
- pretty
- fast
- everywhere
- easy
- compatible
The focus of the Board meetings so far has been on the first 3 items.
Item 1 was what started all this. Tim needs better quality graphics for his virtual dials. Moving from bitmap graphics to vectors with some nice rendering scheme like Juan's Morphic 3 would help. The VPRI people produced Nile/Gezira which could adopt the Morphic 3 rendering algorithm. Craig has been doing interesting stuff with SqueakJS including WebGL.
To make it fast we need to make use of GPUs and multiple cores. Juan has been using OpenCL in his own work and Dan wants to have a version of Nile use SPIR-V (essentially a binary version of OpenCL). Unfortunately some platforms we are interested in don't have OpenCL nor even the desktop version of OpenGL. The most common denominator is OpenGL ES 2.0 from 2007.
Lawson showed two Youtube videos he made in 2012 combining OpenGL and Morphic.
Merik mentioned the KWorld and KScript work from VPRI that goes with Nile. Tweak was also discussed. This time we didn't go into what is being done in Pharo except for a brief mention of the Sparta / Moz2D work.
All of the old OpenGL stuff in Squeak used the original fixed pipeline model but OpenGL ES 2 is incompatible with that is uses shaders for everything. A simple interface to that has the problem of shaders being black boxes in the form of Squeak strings that get passed to the drivers without allowing any kind of debugging. One solution would be to have an OpenGL ES implementation in Squeak which could be used both for debugging applications and to enhance the Cog simulator so not only could it deal with x86 processors (via Bochs) but also with GPUs.
Obviously quite a bit more was discussed (some of it off topic) but I am trying to keep this short. I plan to create a "map" showing MVC, Self Morphic, Squeak Morphic and so on as software stacks in the style of OSI network models. Tihs should help with further discussions.
See you next time! -- Jecel
On 9/28/17, Marcel Taeumel marcel.taeumel@hpi.de wrote:
Hi, there.
Here are some thoughts that might help in the next brainstorming(s):
- The canvas abstraction (i.e. "draw line from to" instead of "put/copy
pixels") has been part of Squeak/Morphic since 1999, which is almost the beginning.
- That canvas abstraction should be extracted from Morphic and moved into
Squeak's base system because it is not inherent to what Morphic accomplishes in terms of tangibility, direct manipulation, and interactivity for the Squeak environment.
I agree with this and it seems to be comparatively straightforward to do.
The discussion in the thread 'What is the task of NullEncoder?' has shown is that the best thing is just to move NullEncoder with subclasses NOT directly doing Postscript out of the 'Morphic-Support' category to a class category 'Graphics-Canvas'.
Should I go ahead and put this into the inbox?
- Text layouting (i.e. Paragraph or Morphic3's NewParagraph) should also be
moved into Squeak's base system for the same reason.
- Take a look at Squeak's PostScriptCanvas to further reason about the
potential of Morphic getting OpenGL support. Tim Felgentreff made it work again a few weeks ago. That export still has its limitations because there is code that relies on pixel information.
:-)
Best, Marcel Am 28.09.2017 04:30:47 schrieb David T. Lewis lewis@mail.msen.com: Jecel,
Thanks for this excellent summary, and thanks to Tim for organizing the discussion. I was not able to be there, so it is really good to see your notes here.
Dave
On Wed, Sep 27, 2017 at 05:33:15PM -0300, Jecel Assumpcao Jr. wrote:
The meeting has just ended after two hours and a half. Thanks again, Tim, for organizing this! We had six particpants.
I created this sort of agenda:
we need Squeak Graphics to be:
- pretty
- fast
- everywhere
- easy
- compatible
The focus of the Board meetings so far has been on the first 3 items.
Item 1 was what started all this. Tim needs better quality graphics for his virtual dials. Moving from bitmap graphics to vectors with some nice rendering scheme like Juan's Morphic 3 would help. The VPRI people produced Nile/Gezira which could adopt the Morphic 3 rendering algorithm. Craig has been doing interesting stuff with SqueakJS including WebGL.
To make it fast we need to make use of GPUs and multiple cores. Juan has been using OpenCL in his own work and Dan wants to have a version of Nile use SPIR-V (essentially a binary version of OpenCL). Unfortunately some platforms we are interested in don't have OpenCL nor even the desktop version of OpenGL. The most common denominator is OpenGL ES 2.0 from 2007.
Lawson showed two Youtube videos he made in 2012 combining OpenGL and Morphic.
Merik mentioned the KWorld and KScript work from VPRI that goes with Nile. Tweak was also discussed. This time we didn't go into what is being done in Pharo except for a brief mention of the Sparta / Moz2D work.
All of the old OpenGL stuff in Squeak used the original fixed pipeline model but OpenGL ES 2 is incompatible with that is uses shaders for everything. A simple interface to that has the problem of shaders being black boxes in the form of Squeak strings that get passed to the drivers without allowing any kind of debugging. One solution would be to have an OpenGL ES implementation in Squeak which could be used both for debugging applications and to enhance the Cog simulator so not only could it deal with x86 processors (via Bochs) but also with GPUs.
Obviously quite a bit more was discussed (some of it off topic) but I am trying to keep this short. I plan to create a "map" showing MVC, Self Morphic, Squeak Morphic and so on as software stacks in the style of OSI network models. Tihs should help with further discussions.
See you next time! -- Jecel
I'm perplexed why Squeak hasn't been abandoned in favor of OpenCroquet/cobalt... Instead it seems the reverse has happened... =\
In terms of standards, Vulkan is the future so yeah, OpenCroquet would have to be ported to Vulkan. But then you would need a SPIR compiler and a bunch of other stuff...
-----Original Message----- From: Jecel Assumpcao Jr. jecel@merlintec.com To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org Sent: Tue, Sep 19, 2017 2:36 pm Subject: Re: [squeak-dev] Squeak graphics colloquium
Tim Rowledge wrote on: Mon, 18 Sep 2017 17:35:41 -0700> The board has been chewing over the sensible options for future graphics in> Squeak and would like to engage the general community. We?ve had a lot of> exciting projects over the years and failed to make much good use of them> for whatever reason. What should we do to improve things - OpenGL? Nile?> Skia? WishFulfillmentGraphics 3.0 ?> > So, if you?re interested, please try to join us at a google hangout next weds> @ 10am PDT - I?ll send out an invitation link then since that seems to be how> it works these days.Would next weds mean September 20 or 27? The first case would be thesame time as the board meeting, right?Thanks for organizing this!-- Jecel
We made some progress in discussing graphics last time and we hope to make more this time - please join us on a google hangout on Tuesday oct 17th at 11am PDT. I’ll post the relevant video conf URL on the list at the time.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Fractured Idiom:- COGITO EGGO SUM - I think; therefore, I am a waffle
On 15-10-2017, at 1:02 PM, tim Rowledge tim@rowledge.org wrote:
We made some progress in discussing graphics last time and we hope to make more this time - please join us on a google hangout on Tuesday oct 17th at 11am PDT. I’ll post the relevant video conf URL on the list at the time.
We just lost power after a rather fierce storm over night; it’s highly unlikely I’ll be online much of the day.
So if somebody else would like to handle the planned hangout for graphics that would be nice.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: IPL: Invent Program Lines
squeak-dev@lists.squeakfoundation.org