The Dilemma: Building a Futuristic GUI for Ephestos

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

The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios
So far Ephestos has gone quite well and I am satisfied with my progress so far. I think its time to start thinking about a GUI for it. 

I was always very interested in creating futuristic GUIs like this


At first I thought about a project "Hyperion" to explore the idea of creating a vector editor in pharo, it was a fun experiment to see also the potential of Athens. However the more I think about the more unnecessary seems to me the use of SVG graphics. Back then I did not have integration with Blender so my idea now is to drop Hyperion and instead make the GUI inside Blender and export it as a set of animatable bitmaps.

My dilemma is what graphic library to use : a) Morphic b) Athens or c)Roassal

What I need is the following:

1) Ability to render small bitmaps fast and do animation , big bitmaps will be mostly static used for backgrounds

2) Basic interaction ability , mouse left and right click , mouse drag , mouse click press and release events. Of course keyboard events too

3) The ability to scale up and down images with minimum distortion

4) The ability to render text smoothly and scale it up and down

5) Transparency also plays a big role in layering those images

I think so far that Roassal is the best candidate because it also integrates well with Morphic and Athens. Also I may still need some vector graphics for example charts or dynamic graphics that will depend on user input that would not be suitable to do strictly with SVG so the morphic option is getting weaker and weaker. 

I wanted a second opinion though since you are much more experienced than me. 

I may also create an API for creating such GUIs with Blender for Pharo. 

Another thing I am wondering is how to download all these images to Pharo , what you guys use to do download big data to Pharo , maybe Fuel ? 
Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

HilaireFernandes
Hi,


Le 13/09/2014 11:05, kilon alios a écrit :

> have integration with Blender so my idea now is to drop Hyperion and
> instead make the GUI inside Blender and export it as a set of animatable
> bitmaps.

I am curious. You mean rendering Bitmap from blender, for later use in
Pharo UI?


>
> My dilemma is what graphic library to use : a) Morphic b) Athens or
> c)Roassal

I will suggest bare bone Morphic mainly, then Athens when you need
vectorial drawing.



> What I need is the following:
>
> 1) Ability to render small bitmaps fast and do animation , big bitmaps
> will be mostly static used for backgrounds

You can do that from Athens over Morphc canvas.


> 2) Basic interaction ability , mouse left and right click , mouse drag ,
> mouse click press and release events. Of course keyboard events too

no problem


> 3) The ability to scale up and down images with minimum distortion

For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap
source is SVG, then converted to PNG, overscaled for production use.
Then from iStoa, depending on the application window extent, the bitmap
are downscaled accordingly, I am pretty satisfied by the result.


> 4) The ability to render text smoothly and scale it up and down

That's may be more tricky. I have issue to deal with when migrating
DrGeo to Athens regarding text. I forgot about the details, but the
hacks are in the Morph object for text rendering in DrGeo.
Igor was very kind to help accurately on those problems.


> 5) Transparency also plays a big role in layering those images

Never dig on that, I may need that for DrGeo when importing bitmap.


>
> I think so far that Roassal is the best candidate because it also
> integrates well with Morphic and Athens. Also I may still need some
> vector graphics for example charts or dynamic graphics that will depend
> on user input that would not be suitable to do strictly with SVG so the
> morphic option is getting weaker and weaker.

Sure. The downpoint, you will depend on one additional layer.


>
> I wanted a second opinion though since you are much more experienced
> than me.
>
> I may also create an API for creating such GUIs with Blender for Pharo.

Nice.  What will be the expected outcomes of such API, I am not sure to
understand and I am curious.


> Another thing I am wondering is how to download all these images to
> Pharo , what you guys use to do download big data to Pharo , maybe Fuel ?

Images=pictures? Use plain PNG files!
Use fuel to store the state of your application objects.


Good work!


Hilaire


--
Dr. Geo - http://drgeo.eu
iStoa - http://istao.drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios

" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 
Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

Enrico Schwass-2
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work. 


Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 
Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios
Moving data between Pharo and Blender via Ephestos is not a problem, just something I need to sit down and code. I can already access all operators and all propertied of blender from pharo via Ephestos. What that mean is that you can manipulate Blender from pharo any way you want. 

Verse is a data protocol to move data around, it has some extra security but that is not relevant to Ephestos as currently my goal is local use. So both projects have very different goals. I dont also care supporting any other apps , right now , besides pharo and blender or having multiple users sharing data with each other. 

Saying that yes Ephestos can use Verse because it basically can use any python library so if you really want to integrate Verse into your workflow because you collaborate with multiple users using different applications you can use Verse's python api via Ephestos from Pharo. Verse is a C library with python wrappers. So there is not need for pharo wrappers if you use Ephestos. 

looks like the original author is still developing it --> http://verse.github.io/

On Sat, Sep 13, 2014 at 9:11 PM, Enrico Schwass <[hidden email]> wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work. 


Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 

Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

stepharo
In reply to this post by Enrico Schwass-2

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef



Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 

Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

Ronie Salgado
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 


Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

stepharo
Ronie when you ready I can help writting a chapter for the nex book.

Stef

On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 



Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 




Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

stepharo
I remember that there was an animated gif support.
Now I do not remember exactly.

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef


On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 





Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

Nicolai Hess
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 






Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios
yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 







Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

philippeback

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :
yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 







Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios
what ? where ? how ? ;) 

I can use anything that is documented and keep its windows inside pharo window. 

Looks like I will be sticking with plain morphic for now I have not seen any substantial benefit in all other graphic libraries. I have to investigate NBOpenGL but it feels like an overkill for me and last time I tried it I had all sort of problems with it and my graphic card.

Have no issue using Woden but if its not documented at all, I will need examples that actually show me how to do this. But I feel the problem I am facing performance wise is at the core of Pharo, its just that pharo is not able to handle big animations. But I will keep investigating my options.

I could go for more static GUI its not such a big issue and keep animations to a minimum. 

On Sun, Sep 14, 2014 at 3:13 PM, [hidden email] <[hidden email]> wrote:

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :

yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 








Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

Nicolai Hess
In reply to this post by philippeback
Why should he use it, now?
I mean, is there a stable API? Or a roadmap ?

Sometimes it is a bit dangerous to trust on "bleeding edge" pharo frameworks.
I did some work based on Roassal3D just to found out there won't be any further development.
The same happens with Roassal and GraphET.
The same can happen with Woden too :)





2014-09-14 14:13 GMT+02:00 [hidden email] <[hidden email]>:

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :

yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 








Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

philippeback

Do you know anything better for futuristic UIs at the moment?

I guess that we aren't talking about commercial dev here. And if we would rely on everything being documented in Pharo, errr, we wouldn't go too far.

That being said, there are plenty of examples in the Woden code.

Phil

Le 14 sept. 2014 16:28, "Nicolai Hess" <[hidden email]> a écrit :
Why should he use it, now?
I mean, is there a stable API? Or a roadmap ?

Sometimes it is a bit dangerous to trust on "bleeding edge" pharo frameworks.
I did some work based on Roassal3D just to found out there won't be any further development.
The same happens with Roassal and GraphET.
The same can happen with Woden too :)





2014-09-14 14:13 GMT+02:00 [hidden email] <[hidden email]>:

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :

yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 








Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios
Plenty ? no 

A few ? yes

Woden is certainly a project that I want it to be successful and keep going forward but at the moment I can't say its usable when each time I resize the window it corrupts the viewport. 

No offense intended but lately the more I dive inside Pharo the more I feel I waste my time, I love the IDE and the environment and live coding but using the libraries is a never ending struggle for me. I agree with Nicolai the landscape is not good, Pharo really lacks mature libraries . Sure we like to bash Java but Java libs are rock solid and very well documented. I bring Java as example. Again I am not complaining at all, I knew when I came to Pharo that I will have to face these limitations. I also don't feel comfortable asking questions all the time as if I want others to do my code but I did not have much of a choice. I just cant deal with the lack of documentation any more.

I think Pharo as a general idea is great , you definitely have taken the Squeak fork one big step further but you have a very long road ahead of you to make Pharo a modern environment. Asking for animating a window with good performance is one of the very basics of a good GUI API. I know you have limited resources and once again I am not complaining at all I just present my opinion. Its clear that Pharo needs a lot more people to contribute and bring the system forward at least to solve the basic problems.

Thank you all people who helped me. But I don't think it worths to make my project in Pharo, too many problems.  I feel privileged to have helped you with my contributions , I wish the Pharo the best. 

I could return back to Python but I think its time for me to bite the bullet and learn C/C++, since graphics is an area that deeply interest me (more as an artist less as a coder), so I don't have much of choice. Maybe I can brings some of my code back to Pharo with NB wrappers , I definitely will keep a close eye on Pharo. 

In a few months I will also present to the Pharo community a secret last contribution ;) 

On Sun, Sep 14, 2014 at 6:26 PM, [hidden email] <[hidden email]> wrote:

Do you know anything better for futuristic UIs at the moment?

I guess that we aren't talking about commercial dev here. And if we would rely on everything being documented in Pharo, errr, we wouldn't go too far.

That being said, there are plenty of examples in the Woden code.

Phil

Le 14 sept. 2014 16:28, "Nicolai Hess" <[hidden email]> a écrit :

Why should he use it, now?
I mean, is there a stable API? Or a roadmap ?

Sometimes it is a bit dangerous to trust on "bleeding edge" pharo frameworks.
I did some work based on Roassal3D just to found out there won't be any further development.
The same happens with Roassal and GraphET.
The same can happen with Woden too :)





2014-09-14 14:13 GMT+02:00 [hidden email] <[hidden email]>:

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :

yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 









Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

Nicolai Hess
In reply to this post by philippeback
2014-09-14 17:26 GMT+02:00 [hidden email] <[hidden email]>:

Do you know anything better for futuristic UIs at the moment?

No, I don't know anything about futuristic UI at All :)
nor do I know anything about woden besides one demo video (is woden for UIs?).

Anyway I think only a few people know what woden is or for what it is for,
and thats the point. Your question: "Why not use Woden?" sounds like
"Everyone uses woden, why don't you?"



 

I guess that we aren't talking about commercial dev here. And if we would rely on everything being documented in Pharo, errr, we wouldn't go too far.

That being said, there are plenty of examples in the Woden code.

Phil

Le 14 sept. 2014 16:28, "Nicolai Hess" <[hidden email]> a écrit :

Why should he use it, now?
I mean, is there a stable API? Or a roadmap ?

Sometimes it is a bit dangerous to trust on "bleeding edge" pharo frameworks.
I did some work based on Roassal3D just to found out there won't be any further development.
The same happens with Roassal and GraphET.
The same can happen with Woden too :)





2014-09-14 14:13 GMT+02:00 [hidden email] <[hidden email]>:

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :

yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 









Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

Nicolai Hess
In reply to this post by kilon.alios
2014-09-14 18:20 GMT+02:00 kilon alios <[hidden email]>:
Plenty ? no 

A few ? yes

Woden is certainly a project that I want it to be successful and keep going forward but at the moment I can't say its usable when each time I resize the window it corrupts the viewport. 

No offense intended but lately the more I dive inside Pharo the more I feel I waste my time, I love the IDE and the environment and live coding but using the libraries is a never ending struggle for me. I agree with Nicolai the landscape is not good, Pharo really lacks mature libraries . Sure we like to bash Java but Java libs are rock solid and very well documented. I bring Java as example. Again I am not complaining at all, I knew when I came to Pharo that I will have to face these limitations. I also don't feel comfortable asking questions all the time as if I want others to do my code but I did not have much of a choice. I just cant deal with the lack of documentation any more.

I think Pharo as a general idea is great , you definitely have taken the Squeak fork one big step further but you have a very long road ahead of you to make Pharo a modern environment. Asking for animating a window with good performance is one of the very basics of a good GUI API. I know you have limited resources and once again I am not complaining at all I just present my opinion. Its clear that Pharo needs a lot more people to contribute and bring the system forward at least to solve the basic problems.

This is definitly wrong :)
Especially the older squeak versions were ahead of its time with  (animated) interactive UI elements.
Java (Swing) does not come with an animation framework for the UI (JavaFX, yes but that took its time).
There was a timing/animation framework used by Roman Guy for its FilthyRich clients, that did really look great.
He created UIs that never looked like ordinary Java UIs. But I think that was done by few people only.
So, doing this for pharo should be doable. (I do remember something like that was done for
Morphic (maybe this one: https://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/animations))

yoiu can do great thinks with Qt for C++ simple animation with the good old qwidget and
the newer qml-framework. That's what I would call feature UIs (mostly what is done nowadays on mobile devices and other
"platforms" have their own frameworks (java)android and Object-C (IPhone).

And I think we will see more "feature"-UI on the web with HTML5/Canvas/Web-GL.

Do we need a good new UI framework for pharo? Yes.
Do we need many developers for working on this ? No, I think a handfull (2-4) people would be enough.
What pharo really needs are:
Many more developers *using* pharo as a platform.

nicolai


 

Thank you all people who helped me. But I don't think it worths to make my project in Pharo, too many problems.  I feel privileged to have helped you with my contributions , I wish the Pharo the best. 

I could return back to Python but I think its time for me to bite the bullet and learn C/C++, since graphics is an area that deeply interest me (more as an artist less as a coder), so I don't have much of choice. Maybe I can brings some of my code back to Pharo with NB wrappers , I definitely will keep a close eye on Pharo. 

In a few months I will also present to the Pharo community a secret last contribution ;) 

On Sun, Sep 14, 2014 at 6:26 PM, [hidden email] <[hidden email]> wrote:

Do you know anything better for futuristic UIs at the moment?

I guess that we aren't talking about commercial dev here. And if we would rely on everything being documented in Pharo, errr, we wouldn't go too far.

That being said, there are plenty of examples in the Woden code.

Phil

Le 14 sept. 2014 16:28, "Nicolai Hess" <[hidden email]> a écrit :

Why should he use it, now?
I mean, is there a stable API? Or a roadmap ?

Sometimes it is a bit dangerous to trust on "bleeding edge" pharo frameworks.
I did some work based on Roassal3D just to found out there won't be any further development.
The same happens with Roassal and GraphET.
The same can happen with Woden too :)





2014-09-14 14:13 GMT+02:00 [hidden email] <[hidden email]>:

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :

yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 










Reply | Threaded
Open this post in threaded view
|

Re: The Dilemma: Building a Futuristic GUI for Ephestos

kilon.alios
yes JAVA Swing comes with animation abilities , maybe you mean something more than that


before JAVA FX , Java had and still has Java2D. 
but I am no big fan of Java anyway. 

Dont know what it means by "ahead of its time" but back in 1998 I was coding in Delphi 1996 with a rock solid and very powerful GUI API. Delphi was an extremely powerful IDE , even more powerful than Pharo and stil is, with very mature and well documented libraries. 

Also if we talk about transparency animation this dates back to my days coding in DOS and C++. 

QT is awesome from what I see and people I ask generally have a very positive opinion about it, certainly something I may learn but my decision to swift focus from Pharo to C/C++ is not just because I having hard time coding the things I want in Pharo, its also because it makes more sense for me to contribute to Blender since my biggest interest is 3d art and blender is what I use. So re-learning C/C++ will give me full access to Blender internals which has a lot more potential for me. But yeah most likely I will learn QT and OpenGL. Its also cool that QT also supports mobile devices and even web apps. Also QML allows for live coding. 

I assume by 2-4 you mean full time developers. I don't know , personally I think you need more people because GUI APIs are a pain to maintain across platforms since OS define their own libraries and support. 

Yeap I definitely agree that Pharo needs more people using it, the problem however is that unpopularity is a vicious circle. You don't have much documentation and mature libraries because of small community and not much more new people come because you don't have much documentation and mature libraries. The problem also is fragmentation each one wants to try his own ideas and rightly so they may not be interesting in contributing to existing libraries, etc etc. These problems are common for languages. But Pharo can only get better since its in capable hands and passionate people.  I have saw Pharo only improve the past year I have been using it regularly (in my free time , part time) and the community is helpful and kind if you exclude a couple of incidents here and there . 

About the web technology, personally I find he web is a big can of worms but a necessary evil, I always said that building pharo on top of amber would make more sense and would lift a great burden from the development of pharo. Sure pharo would inherit the problems of the web technologies and limitations but also its strengths and power and flexibility and pharo would not need to play this game of cat and mouse with other programming languages. It would at least solve the GUI API problem for Pharo and it would be a matter of mapping Spec on top of existing well documented and well tested and very powerful / flexible web technologies. 

But thats up to the Pharo community , my opinion is not fact and my personal choice is not the choice of other people. 

On Sun, Sep 14, 2014 at 8:07 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 18:20 GMT+02:00 kilon alios <[hidden email]>:
Plenty ? no 

A few ? yes

Woden is certainly a project that I want it to be successful and keep going forward but at the moment I can't say its usable when each time I resize the window it corrupts the viewport. 

No offense intended but lately the more I dive inside Pharo the more I feel I waste my time, I love the IDE and the environment and live coding but using the libraries is a never ending struggle for me. I agree with Nicolai the landscape is not good, Pharo really lacks mature libraries . Sure we like to bash Java but Java libs are rock solid and very well documented. I bring Java as example. Again I am not complaining at all, I knew when I came to Pharo that I will have to face these limitations. I also don't feel comfortable asking questions all the time as if I want others to do my code but I did not have much of a choice. I just cant deal with the lack of documentation any more.

I think Pharo as a general idea is great , you definitely have taken the Squeak fork one big step further but you have a very long road ahead of you to make Pharo a modern environment. Asking for animating a window with good performance is one of the very basics of a good GUI API. I know you have limited resources and once again I am not complaining at all I just present my opinion. Its clear that Pharo needs a lot more people to contribute and bring the system forward at least to solve the basic problems.

This is definitly wrong :)
Especially the older squeak versions were ahead of its time with  (animated) interactive UI elements.
Java (Swing) does not come with an animation framework for the UI (JavaFX, yes but that took its time).
There was a timing/animation framework used by Roman Guy for its FilthyRich clients, that did really look great.
He created UIs that never looked like ordinary Java UIs. But I think that was done by few people only.
So, doing this for pharo should be doable. (I do remember something like that was done for
Morphic (maybe this one: https://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/animations))

yoiu can do great thinks with Qt for C++ simple animation with the good old qwidget and
the newer qml-framework. That's what I would call feature UIs (mostly what is done nowadays on mobile devices and other
"platforms" have their own frameworks (java)android and Object-C (IPhone).

And I think we will see more "feature"-UI on the web with HTML5/Canvas/Web-GL.

Do we need a good new UI framework for pharo? Yes.
Do we need many developers for working on this ? No, I think a handfull (2-4) people would be enough.
What pharo really needs are:
Many more developers *using* pharo as a platform.

nicolai


 

Thank you all people who helped me. But I don't think it worths to make my project in Pharo, too many problems.  I feel privileged to have helped you with my contributions , I wish the Pharo the best. 

I could return back to Python but I think its time for me to bite the bullet and learn C/C++, since graphics is an area that deeply interest me (more as an artist less as a coder), so I don't have much of choice. Maybe I can brings some of my code back to Pharo with NB wrappers , I definitely will keep a close eye on Pharo. 

In a few months I will also present to the Pharo community a secret last contribution ;) 

On Sun, Sep 14, 2014 at 6:26 PM, [hidden email] <[hidden email]> wrote:

Do you know anything better for futuristic UIs at the moment?

I guess that we aren't talking about commercial dev here. And if we would rely on everything being documented in Pharo, errr, we wouldn't go too far.

That being said, there are plenty of examples in the Woden code.

Phil

Le 14 sept. 2014 16:28, "Nicolai Hess" <[hidden email]> a écrit :

Why should he use it, now?
I mean, is there a stable API? Or a roadmap ?

Sometimes it is a bit dangerous to trust on "bleeding edge" pharo frameworks.
I did some work based on Roassal3D just to found out there won't be any further development.
The same happens with Roassal and GraphET.
The same can happen with Woden too :)





2014-09-14 14:13 GMT+02:00 [hidden email] <[hidden email]>:

Why not use Woden?

Phil

Le 14 sept. 2014 12:51, "kilon alios" <[hidden email]> a écrit :

yeah I am afraid transparency is very important to me 

On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <[hidden email]> wrote:
2014-09-14 11:32 GMT+02:00 stepharo <[hidden email]>:
I remember that there was an animated gif support.
Now I do not remember exactly.

At least in squeak there is an AnimatedImageMorph, that can load and display animated gifs.
That works and is quite fast even for multiple instances. But of course no (alpha-)transparency

 

for roassal2 have a look at the viva classes: this is the animation frameworks that igor designed.

Stef



On 14/9/14 10:22, kilon alios wrote:
so I tried to animate in Roassal having two different images display with a delay for few millisecond but it only displays the second image with this code

form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
v := RTView new.
c := v canvas.
s := TRBitmapShape new.
s form: form1.
c addShape: s.
v  open.

(1 to: 100) do: [ :index| 
s form: form1.
s signalUpdate .
"(Delay forMilliseconds: 1000 ) wait."
s form: form2.
s signalUpdate .
(Delay forMilliseconds: 1000) wait.].

I looked into RTAnimation but dont know how to use it for this example. Any help ? Does Roassal 2 support such animations ? 

if I do s form: and then s signalUpdate for each form separately it works fine but inside the loops does not seem to work , I tried bigger delays with no effect. 

On Sun, Sep 14, 2014 at 10:57 AM, stepharo <[hidden email]> wrote:
Ronie when you ready I can help writting a chapter for the nex book.

Stef


On 13/9/14 21:42, Ronie Salgado wrote:
Hello,

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

I have an adapted version of Swig for Pharo NativeBoost here: https://github.com/ronsaldo/swig

Currently I am using it to generate my Bullet bindings (available here: https://github.com/ronsaldo/bullet-pharo) that can be used as an example of using Swig.
I still have to improve more my Swig generator, by writing documentation and fixing some bugs.

Greetings,
Ronie

2014-09-13 16:11 GMT-03:00 stepharo <[hidden email]>:

On 13/9/14 20:11, Enrico Schwass wrote:
Hi 

another option could be the verse protocol. There was a plugin for Maya and Blender to do realtime rendering. Dont know if there is some automatic Swig-like wrapper for smalltalk but FFI might work.

There is Wig like wrapper for Pharo done by ronie salgado.

Stef




Almost a decade ago I did some ruby bindings by hand. It was working out of the box

Bye
Enno

Am 13.09.2014 um 16:11 schrieb kilon alios <[hidden email]>:


" I am curious. You mean rendering Bitmap from blender, for later use in Pharo UI? "

yes exactly. Blender can render in all popular graphics files, most used are png. Animation frames can be rendered each frame in its own file. 

So basically its a lot like the average games out there. 

"I will suggest bare bone Morphic mainly, then Athens when you need vectorial drawing."

ok 

"For iStoa I decided to go purely Morphic, I have a lot of bitmap. Bitmap source is SVG, then converted to PNG, overscaled for production use. Then from iStoa, depending on the application window extent, the bitmap are downscaled accordingly, I am pretty satisfied by the result."

I fail to understand how your bitmap source is SVG for me bitmap is a raster graphic format svg is  procedural graphic format. Two opposite things. 

"Sure. The downpoint, you will depend on one additional layer."

dependency is not an issue. Afterall the graphic files themselves will be far bigger download even more so if the GUI becomes very large.

"Nice.  What will be the expected outcomes of such API, I am not sure to understand and I am curious." 

Well Blender besides creating 3d objects (which can be used as 2d objects too) it can also create 3d unrendable objects. That means that objects produce no graphics and have the role of placeholders or helpers, for example when you want an emitter of light or emitter of a physical power like gravity or wind. Those are called dummy objects and I could use them to give characteristics to the graphics , for example I could use a dummy to define the are of influence of a mouse click , or what type of event the bitmap will respond to. That means you wont have to import the graphics manually to pharo and create a separate morph for each bitmap and then set the events but rather press a button in blender and then Ephestos will import then bitmaps to pharo , set the events and create the morphs automagically. 

So basically you will be using Blender as a GUI designer. 

"Use fuel to store the state of your application objects."

ah nice so fuel is a good candidate. 

I will also take a look at Dr Geo and Phratch , both apps have custom GUIs and use only Morphic (Dr Geo using Athens for the geometry primitives) . 











1234