I wonder when and where the film will be released. I'd love to see it, but I'd also love to get it in front of a lot of other people.
I'll Mr. Shasky and report back any positive news...
---- Eugene
I have been looking at the possibility of using a raw paste-up morph without a world state. It doesn't appear to be viable because there doesn't appear to be a way to have the facility of hands and the control of time through the manipulation of the time stepping without it.
Now that I know that I can obtain a copy of the screen without "ImageMorph" the necessity or utility of image morph is unclear.
My previous question about how to "start the clock" of world morph and cause it to function so that it can support normal squeak functionality (or some restricted version thereof) remains open.
I have not devoted very much time to the project reciently which is why this response has been somewhat delayed.
My usual review of the project's requirements follows:
AI testbench is to be a medium for communication between human and AI and must also ficilitate the development and growth of said AI.
It must provide the AI with the ability to interract with sequeak software in a fairly ordinary manner as well as the ability to comumnicate with the user/teacher.
The system will function through a system by which the AI will recive input from the screen and have the ability to move a mouse "hand" as well as type on an immaginary keyboard.
On Saturday 07 September 2002 02:32 pm, Alan Grimes wrote:
I have been looking at the possibility of using a raw paste-up morph without a world state. It doesn't appear to be viable because there doesn't appear to be a way to have the facility of hands and the control of time through the manipulation of the time stepping without it.
What's wrong with WorldState?
Now that I know that I can obtain a copy of the screen without "ImageMorph" the necessity or utility of image morph is unclear.
So don't use one.
My previous question about how to "start the clock" of world morph and cause it to function so that it can support normal squeak functionality (or some restricted version thereof) remains open.
I don't understand; the World already supports normal Squeak functionality. Why do you feel it's not what you need?
It must provide the AI with the ability to interract with sequeak software in a fairly ordinary manner as well as the ability to comumnicate with the user/teacher.
The system will function through a system by which the AI will recive input from the screen and have the ability to move a mouse "hand" as well as type on an immaginary keyboard.
So read the World's/Display's bitmap (or Form) directly to see what's being displayed.
For typing and moving the mouse, either use a RemoteHand, or use the event playback hooks (see EventRecorderMorph and HandMorphForReplay).
No reason that I can see to change the World or WorldState.
Bob Arning wrote:
I have been looking at the possibility of using a raw paste-up morph without a world state. It doesn't appear to be viable because there doesn't appear to be a way to have the facility of hands and the control of time through the manipulation of the time stepping without
it.
I don't think you've described anything that requires getting tangled up in "worlds". Here is a simple experiment:
- get a PasteUpMorph from the new morph menu or objects tool
- get a ClockMorph and drop it in the PasteUpMorph
- the clock will start ticking -- you have stepping
- you can pick up the ClockMorph and set it back down -- you have hands
um, I was not even talking about a realtime clock. If you inspect "worldState" on your active world you will notice that it has an internal clock that advances every millisecond or so.. It appears that this clock drives all the other activities in the world. To synchronize the AI with the world it operates on it appears that I need to be able to manipulate this clock.
Furthermore, in my attempt to create an Image Morph world I have been unable to cause the world associated with that immage morph to function.
Ned Konz wrote:
I have been looking at the possibility of using a raw paste-up morph without a world state. It doesn't appear to be viable because there doesn't appear to be a way to have the facility of hands and the control of time through the manipulation of the time stepping without it.
What's wrong with WorldState?
I have not been able to use it. (I am talking about the world state of the AIWorld, independant of the usual world system).
Now that I know that I can obtain a copy of the screen without "ImageMorph" the necessity or utility of image morph is unclear.
So don't use one.
It would seem to be more efficient to use ImageMorph so that I am not maloc()ing a new form each time I want to take a look at the world...
My previous question about how to "start the clock" of world morph and cause it to function so that it can support normal squeak functionality (or some restricted version thereof) remains open.
I don't understand; the World already supports normal Squeak functionality. Why do you feel it's not what you need?
I have, to this point, been unable to get my nested world to function.
The system will function through a system by which the AI will recive input from the screen and have the ability to move a mouse "hand" as well as type on an immaginary keyboard.
So read the World's/Display's bitmap (or Form) directly to see what's being displayed.
That sounds like what I am trying to do with Image Morph.
For typing and moving the mouse, either use a RemoteHand, or use the event playback hooks (see EventRecorderMorph and HandMorphForReplay).
I havn't gotten to that point yet as I am still trying to achieve the basic functionality of AIWorld.
No reason that I can see to change the World or WorldState.
=\
I'm sorry people, but It seems that I _WILL_ need to start a mrohpic world inside an ImageMorph. Where can I find the appropriate documentation?
Hi all,
On Sat, Sep 07, 2002 at 02:32:54PM -0700, Alan Grimes wrote:
I have been looking at the possibility of using a raw paste-up morph without a world state. It doesn't appear to be viable because there doesn't appear to be a way to have the facility of hands and the control of time through the manipulation of the time stepping without it.
Now that I know that I can obtain a copy of the screen without "ImageMorph" the necessity or utility of image morph is unclear.
My previous question about how to "start the clock" of world morph and cause it to function so that it can support normal squeak functionality (or some restricted version thereof) remains open.
Why not just hook into the World state of the current project? The user is interacting with the whole World, not just a PasteUpMorph in the World, so it makes sense for your AI's input/output to be through the World (note: capitalization of "World" refers to the global variable with that name)
The World already has a world state ticking, so you don't have to worry about the hassles involved with hooking up your World with mouse/keyboard input, etc. Just use the one that is already there.
Here's how I might approach the implementation:
You could make a subclass of PasteUpMorph, AIPasteUpMorph, that could be used for the World of newly created Projects. An item in the World menu could tell the AI to become active or inactive. When the AIPasteUpMorph initializes itself, it does everything necessary to begin to sense input from the user, munch on it, and react to it.
You might also have to subclass WorldState, and perhaps HandMorph. Take a look at the method WorldState>>doOneCycleNowFor:. The line 'h processEvents' is where your AI should tap into the user input. The AI's actions might occur between 'aWorld runStepMethods' and 'self displayWorldSafely: aWorld'
I have not devoted very much time to the project reciently which is why this response has been somewhat delayed.
My usual review of the project's requirements follows:
AI testbench is to be a medium for communication between human and AI and must also ficilitate the development and growth of said AI.
It must provide the AI with the ability to interract with sequeak software in a fairly ordinary manner as well as the ability to comumnicate with the user/teacher.
The system will function through a system by which the AI will recive input from the screen and have the ability to move a mouse "hand" as well as type on an immaginary keyboard.
Does what I wrote above make sense? If not, ask and I will clarify. If so, does it not meet the requirements you've described above?
Joshua
-- Latancy is your enemy. Bandwidth is your friend. http://users.rcn.com/alangrimes/
appologies again for the long turn-around... It can be expected that this will be a continuing thing as I work on my projects off and on...
My previous question about how to "start the clock" of world morph and cause it to function so that it can support normal squeak functionality (or some restricted version thereof) remains open.
Why not just hook into the World state of the current project?
I want the AI's playpen to be a subset of the user's range. The user must have full access to the system where the AI has access to some truncated portion of it. It is also highly desirable to control the extent to which the AI can observe the user's actions so that the user doesn't inadvertantly give the AI some knowlege that will allow it to hack the system.
The user is interacting with the whole World, not just a PasteUpMorph in the World, so it makes sense for your AI's input/output to be through the World (note: capitalization of "World" refers to the global variable with that name)
Yes, and as I just stated, there is also a requirement that the AI's world be a subset of the full world.
The World already has a world state ticking, so you don't have to worry about the hassles involved with hooking up your World with mouse/keyboard input, etc. Just use the one that is already there.
Hmm... I _WILL_ be implementing a virtual keyborad and mouse for the AI, so I will need to wory about hooking the AI's interfaces up to the world anyway, so anything I need to do with the outside user's hardware shouldn't create much of a complexity overhead at all...
Here's how I might approach the implementation:
You could make a subclass of PasteUpMorph, AIPasteUpMorph, that could be used for the World of newly created Projects. An item in the World menu could tell the AI to become active or inactive. When the AIPasteUpMorph initializes itself,
it does everything necessary to begin to sense input from the user, munch on it, and react to it. <<<<
The AI looks at whatever is being displayed in the AI-world window exactly as a user would, by looking at pixels and connecting dots...
You might also have to subclass WorldState, and perhaps HandMorph. Take a look at the method WorldState>>doOneCycleNowFor:. The line 'h processEvents' is where your AI should tap into the user input. The AI's actions might occur between 'aWorld runStepMethods' and 'self displayWorldSafely: aWorld'
The AI doesn't process user inputs. The AI world processes the AI's "inputs". though input and output become rather circular in this context...
My brain supprised the hell out of me last night by actually reaching a useful conclusion. =P
I realized that the world state of any given world doesn't advance by receiving an interuput directly but rather it is driven by a squeak process.
I followed up on this flash of inspiration this morning by using "Process Browser". It didn't take me long to discover that the most likley candidate was "The Morphic UI process". I guess the pane on the right is some kind of trace of the process.
Having made this breakthrough in my understanding, I went to the swiki and searched for "UI process" but couldn't find anything.
It is now clear that a critical missing ingredient of my AI-world project is a clone of this process. How do I design and activate such a process?
It appears that the primary loop of the AI will look something like this:
Upudate worldstate. Do one AI step. Update world state. do one AI step. etc for the rest of the day (I hope). ;)
It may be desirable to have the ability to take the AI out of the loop or add it back to change its active status.
What is the best source for this information? I have done some textbook reading in time-sharing and Pthreads but no experience.
squeak-dev@lists.squeakfoundation.org