[Pharo-project] Morpheas , bringing Morphic to Opengl (3d GUIs)

dimitris chloupis thekilon at yahoo.co.uk
Mon Jan 30 09:55:25 EST 2012

There are no screenshots per se , the project is in "reading documentation and planning stage", but I have commited a small OpenGL morph that I have grabed from the croquet repo. Me and some other people at #squeak have been sucessful at embeding OpengGL context on screen or inside a morph widget. 

you can take a look at my friends Nehe tutorials in Squeak here


I posted here to coordinate effort with all parties and make sure I make my project 100% compatible with existing Pharo and any future Pharo. 

Each concept is based on an Age that works like a cascade. The one depends on the other. 

So Proteas will need a stable, reliable and at least basic Morpheas. Proteus will be a visual programming environment taken to the next level. As you know already Pharo and smalltalk perform very well for visual programming. My idea is to take this abit further. 

An idea/theory I want to implement is my "LOD theory" . According to this idea, not only you can represnt code visualy but you can represent in a context that moves in Leves Of Detail. This way the user will be able to see a "bird's eye" vew of the code, visual, meaning graphical blocks / elements representing section of code which many contain several classes/ objects. The user will control the level of detail which you will able to see more and more deeply the structure of you code. Obviously code does not change, the way you view it changes and help you understand the connection even in nightmare scenarios like spaggeti code. That means that will implement several navigational tools for exploring these visualisation and all of them will depend on the 3d nature of Morpheas. 

Beside code visualisation I would like to take this theory in the actual inteface as well. For example LOD will appear to all tool like the debugger , system browser , TDD etc The user will be able to operate those tool in begineer / advanced and expert modes. 

Code will also be contstucted in a visual ways, obviously something similar to scratch or build your own blocks, however full acess to the language will be allowed. Have several ideas there how that is possible.

Another important theory I want to test is my "real time context sensitive documentation". In a sense the screen will dedicate one 1/3 or 1/4 of its estate to a documentation column that will be there all the time unless the user decides to close it. The documentation will change according to what the user selects and types making external documentation redundant. This documentation will of course leverage class documentation strings but it migh extend the whole facility as well.

Finally Proteas will operate through a 3d world powered by Morpheas Graphic Engine, in a style of an RPG game, making sure users around the world can interact , share code and even collab real time. The RPG game will offer challanges and tutorials to users and its an oportunity for me to practice my 3d skills. Obviously I will be borrowing alot of code from Open Cobalt since this part overlaps in that area.

Orpheas will be completely made via Proteas and of course Morpheas as a proof of concept. It will be a DAW GUI for Supercollider. 

A DAW is a Digital Audio Workstaion , its a professional Music software which has tracks, mixers , eq, audio effects and anything a musician needs to create polished music tracks. I will use Supercollider as the main engine here , supercollider is an extremely power audio server that can perform complicate and sophisticate functions on audio and music by receiving OSC messages. So you can say that audio wise Opheas will do nothing more than calling Supercollider functions. 

You can find Supercollider here 


Orpheas will follow Ableton Live as a design model 


My plan is 2 year for Morpheas then another 2 years for Proteas and then another 2 years for Orpheas. But its not a strict plan as I said I am still in planning phase and anything can happen. Hopefull I can get other people to work on it too, but for the time being I will be alone making sure there is some gravity on my claims. 

My goal obviously because the project is too ambitious and its pure insanity to implement all those features by myself is to borrow as much as I can existing code and reuse it.  I have many ideas, but I am aware that putting ideas to practice is "abit" harder than one thinks. Will see how it goes for the time being my only concetration is Morpheas and how well opengl can work inside Pharo. 

So anyone who can help me with an advice or a couple of links will provide me with some very valuable help. 

 From: Janko Mivšek <janko.mivsek at eranova.si>
To: Pharo-project at lists.gforge.inria.fr; dimitris chloupis <thekilon at yahoo.co.uk> 
Sent: Monday, 30 January 2012, 15:58
Subject: Re: [Pharo-project] Morpheas , bringing Morphic to Opengl (3d GUIs)
Hi Dimitris,

Your Ephestos sounds promising, can you post some screenshot as well or
is too early? Also, can you explain us Proteas and Orpheas ...

Best regards

S, dimitris chloupis piše:
> I have started my first project with Pharo (and hopefully Squeak too)
> called "Ephestos" . 
> http://www.squeaksource.com/ephestos.html
> Ephestos is divided into 3 areas/ elements / concepts : a) Morpheas b)
> Proteas c) Orpheas
> Morpheas is an effort to bring Morphic to OpenGL and to implement 3d
> guis , that can be designed in blender ( probably will implement a addon
> exporter too from blender to Pharo) and deployed in Pharo , minimising
> coding and maximising ease of use, since a 3d gui can be fairly complex
> to program. 
> The reason why I am posting here is for your help. I am very new to
> Pharo and smalltalk and Ephestos is an extremely ambitious project which
> I hope to be commited for at least the next 5-6 years which I plan to
> release version 1. 
> My first rule is of course , because the project is already very
> ambitious, "code reuse". I want to be informed what efforts there have
> been towards that direction . 
> Mr Stef published recently a great PDF document  titled "Pharo's Vision
> : Goals , Processes and Development effort" in it there is the following
> quote about Morphic
> "What have been done so far. Igor Stasenko did the following:
> • Designed and implemented a new canvas API and all the necessary
> abstractions
> to generate adequate code for different backends.
> • Deep integration to be able to inject frames into existing VMstructure
> (Igor
> can you confirmthis?)
> • Designed and implemented a new textMorph, paragraph and other classes.
> • Defined a default back-end.
> • Defined a Cairo back-end.
> • Defined an openGL back-end (using an OpenGL calling framework). "
> So I guess my question should be directed towards Igor, but maybe
> someone else also works in this. I am interested in any information
> about Morphic and OpenGL . I am also interested even on partial support
> of graphics engine like Irrlicht , Ogre and Open Cobalt.
> My main focuse is Nativeboost cause it appear to have a new enhance FFI,
> and of course the possibility of inline Assembly code.  
> Has anyone , advice , suggestions , ideas and hopefully some
> documentation I can use  ? 
> I am already studying both OpenGL and Nativeboost / NBOpenGL . 

Janko Mivšek
Svetovalec za informatiko
Eranova d.o.o.
Ljubljana, Slovenija
tel:  01 514 22 55
faks: 01 514 22 56
gsm: 031 674 565
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20120130/ab53cd2c/attachment-0001.html>

More information about the Pharo-dev mailing list