Squeak graphics colloquium

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Squeak graphics colloquium

timrowledge
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; [hidden email]; http://www.rowledge.org/tim
 Testicle (n.), a humorous question on an exam.



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

Jecel Assumpcao Jr
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

Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

timrowledge
Ack! 27th, definitely.

/tim
{insert witticism here}

> On Sep 19, 2017, at 11:36 AM, Jecel Assumpcao Jr. <[hidden email]> 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
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

Alan Grimes-3
In reply to this post by Jecel Assumpcao Jr
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. <[hidden email]>
To: The general-purpose Squeak developers list <[hidden email]>
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 the same time as the board meeting, right? Thanks for organizing this! -- Jecel


Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

timrowledge
In reply to this post by timrowledge

> On 19-09-2017, at 11:23 PM, Tim <[hidden email]> wrote:
>
> Ack! 27th, definitely.

Here we are - https://hangouts.google.com/hangouts/_/iaeq6ltifvhytpagfy2jjm3pkye


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Ought to have a warning label on his forehead.



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

timrowledge
> Here we are - https://hangouts.google.com/hangouts/_/iaeq6ltifvhytpagfy2jjm3pkye
>

Plenty of room in the hot tub... come and join us

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Utinam barbari spatium proprium tuum invadant! = May barbarians invade your personal space!



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

Jecel Assumpcao Jr
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

Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

timrowledge
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&index=53
https://www.youtube.com/watch?v=TsJmBwi9lDY&index=52&list=PL6601A198DF14788D

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; [hidden email]; http://www.rowledge.org/tim
USER ERROR: replace user and press any key to continue.



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

David T. Lewis
In reply to this post by Jecel Assumpcao Jr
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:
>
> 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
>

Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

marcel.taeumel
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 <[hidden email]>:

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:
>
> 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
>



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

marcel.taeumel
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 <[hidden email]>:

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 <[hidden email]>:

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:
>
> 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
>



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

Hannes Hirzel
In reply to this post by marcel.taeumel
On 9/28/17, Marcel Taeumel <[hidden email]> 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 <[hidden email]>:
> 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:
>>
>> 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
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

timrowledge
In reply to this post by timrowledge
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; [hidden email]; http://www.rowledge.org/tim
Fractured Idiom:- COGITO EGGO SUM - I think; therefore, I am a waffle



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

timrowledge

> On 15-10-2017, at 1:02 PM, tim Rowledge <[hidden email]> 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; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: IPL: Invent Program Lines



Reply | Threaded
Open this post in threaded view
|

Re: Squeak graphics colloquium

LawsonEnglish
In reply to this post by timrowledge
I missed it as well. Can someone summarize, or can we reschedule it if didn't happen??

L


"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
-Brian Kernighan



> On Oct 17, 2017, at 08:45, tim Rowledge <[hidden email]> wrote:
>
>
>> On 15-10-2017, at 1:02 PM, tim Rowledge <[hidden email]> 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; [hidden email]; http://www.rowledge.org/tim
> Strange OpCodes: IPL: Invent Program Lines
>
>
>