From: Patrick G. <Pat...@on...> - 2011-10-18 05:16:02
|
Hello, my name is Patrick, I'm a 24 year old Masters student from the University of Koblenz (Germany), currently studying at the Osaka University for 6 months. Here I am going to work on the Simspark environment within the context of a "research" practicum under the watchful eyes of Joschka Boedecker. (Actually it wont be "researching", but I will be focusing on solely one project) My major subject is Computational Visualistics, so my plans for developing on Simspark are mostly improving usability and/or graphical presentation. From the Todo- and wishlist in the Wiki I could target (or at least support) some of: - New interface for different rendering engines, add OGRE support - Enable new agent-server protocol to support using image sensor and other things via new rendering engine. - GUI for our simulator (possibly based on RsgEdit + ZigoratAssistant, incl. easy construction of new robots and simulations, moving robots on the field, etc.) - Support Referee enhancements and trainer enhancements: (Drop a player anywhere on the field. Drop the ball at any place (as drop ball, free kick left or right) as is possible in 2D. Play Mode Control etc..Control e.g. via Monitor) - Nice 3D visualization, including a stadium, animated crowd, automatic commentator, slow-motion replay, etc. - Training Capabilities through agent-monitor communication As i have about five and a half months of time I could probably connect some of these tasks, but of course i will have to focus. For example building a User Interface for Server, Monitor and Client Support (maybe like WeBots) along with the possibilty to connect new modules for a RsgEditor and new functionality would be possible. At the same time, Peter Tissen (a friend of mine who is working here too) is implementing Bullet as a pluggable Physics Engine optionally choosable for the Simspark Simulation. First of all, to me it is most important to get feedback by those, who are already experienced with Simspark. What is needed? What would be nice to have/doable in this amount of time? What is definitely NOT needed? Whatever will be done has to be accepted and integrated by the community, so it can be of use and of course can be maintained and extended in the future by everyone. So to begin with, in the following I have a list of ideas and questions you may comment with whatever comes to your mind. The more detailed, the better.** *What should a central user interface contain* - starting server, monitor and agents - controlling the server (game control, message overview, physics engine, log control) - controlling the monitor (views, rendering engine, video captures, game camera) - controlling the agents (message overview, message sending?, debug interface?) - creating and testing agents? (loading from collada?, annotating with receptors and effectors?, coding?, visualize behaviour? control interface?) - be extendable to incorporate rsgeditor, further monitors, agent visualizations... / Questions/: Is running most agents as simspark plugin possible? Or is it better to offer some kind of debug messaging interface? How are agents debugged in practice and could a central user interface working together with server and visualization (see next point) be of help? My preference for an easy-to-create and -extend up-to-date GUI is definitely QT. *What should an improved graphics engine/monitor be able to do?* - Visualizing server or agent internal states? (view of agents, rule checking, effector usage, agent state visualization) - Improve Debugging/Logging by server and/or agents with a documentation interface (visualizing and recording on request) - graphics engine choosable? (currently built-in as fallback, Ogre/Irrlicht as improvement). e.g. bind ogre to core scene graph via bridge pattern. - Shading, 1st alternative: GLSL Shading environment attached to ogre - pro: multiple render targets -> realistic lighting, improved materials, point of view rendering for every agent, realistic sight detection -> implementation of Screen Space Lighting -> implementation of Screen Space Ambient occlusion - pro: Further rendering engines besides ogre can be connected the same way - con: bound to Ogre. When the interface should fail somehow, there wouldnt be any improved shading anymore. - Shading, 2nd alternative: basic GLSL Shading environment attached to the monitors core, improving current indepandant shading ( allowing MRT Shading too) - pro: lightweight, same shading options like 1st option - pro: easy and fast to implement, so i will have time for other things - pro: not dependant to ogre -> one needs no knowledge about ogre - con: developing new shaders will be harder, as no combination is possible natively - con: lacking ogres support for Object loading, environmental animation, scenegraph, materials etc. - Object Shadows - simple object shadows (blob under objects)-> easy, with ogre for free - directional shadow for each object -> easy because of flat ground, - shadow mapping (allow shadows on objects)-> time consuming). - Inner Shadows (Screen Space Ambient Occlusion, SSAO): only possible with shader integration - additional objects to render: seats, crowd, goal net, corner flags (further objects would be easier when using ogre) - graphics improvement: textures, sky, weather - environment simulation (wind on grass, changing sky...) The main problem is how to improve the current monitor or create an alternative one, that is easy to use and (most important) easy to maintain. Various new possibilities like visual debugging and recording of server internal states (rcssserver3d) and the agents could be integrated into the visualization (or maybe better the GUI). I guess since rewriting the monitor from scratch could lead to discarding any new implementation with the stable one after im done, it my be better to make Ogre a pluggable option to the current monitor. New possibilities for the monitor would most likely create the need of extending the Server/Monitor MessageProtocol. Both implementing Ogre as pluggable rendering engine and simply improving the engine already in use are viable options. However, while creating a simple (yet good looking) improved rendering style for the Monitor is an easy task, connecting Ogre to the scene graph is not. So the Question: Is it better to simply implement a better visualization, leaving much more time for graphical gimmicks, the GUI or debug/point-of-view visualization and so on, or is it preferable to create a flexible graphics-interface for the monitor and implement Ogre as the first one, even if there wont be much more time for the actual visualization and possibly more important tasks (central gui). This said for the two possible development fields... Again, the most important thing is the acceptance in the community. I definitely dont want to create an interface or program that cannot be used or maintained in the future, should I not be able to continue. Please send me E-Mails with comments, ideas, suggestions and anything helpful you might come up with. Thanks a lot ;) Patrick Geib |
From: Sander v. D. <sgv...@gm...> - 2011-10-18 09:50:43
|
Hi Patrick, First of all, great to hear you are spending your project on this, welcome to the community! Secondly, before you continue, have a look at RoboViz[1], which is an alternative monitor for RCSSServer3D, which was recently developed by Justin Stoecker of team RoboCanes and is now the de facto standard monitor used in competitions. It offers a debugging interface for agents, to be able to draw a range of geometric forms and text into the field. If you want to focus on visualization for 3D simulation, I would suggest getting in contact with Justin and see if you can work on that. However, RoboViz is geared towards the RoboCup, if you want to work on Simspark as a generic simulator, your plans as outlined below are all good, just realize that for the specific RoboCup implementation there is already something out there. What I think would be most useful for us as a league, besides extending RoboViz (and the server+protocol in order to make it all possible) with some of the extra monitoring and control features you mentioned, is a nice way to easily design new robots. This because we are thinking about and looking into working with different, heterogeneous models, or models where parameters can vary randomly, but we lack ways to easily do this. I have not looked at RsgEditor or ZigoratAssistant in a while, but if I recall correctly, they're broken with latest versions of SimSpark, or not fully intuitive (again, saying this not based on much experience with them ;) ). Another nice thing would be to have a GUI for configuring and controlling the simulator, for setting startup parameters and change them at run time. Good luck, looking forward to the end result! Sander On Tue, Oct 18, 2011 at 6:15 AM, Patrick Geib <Pat...@on...>wrote: > Hello, **** > > my name is Patrick, I'm a 24 year old Masters student from the University > of Koblenz (Germany), currently studying at the Osaka University for 6 > months. Here I am going to work on the Simspark environment within the > context of a "research" practicum under the watchful eyes of Joschka > Boedecker. (Actually it wont be "researching", but I will be focusing on > solely one project)**** > > My major subject is Computational Visualistics, so my plans for developing > on Simspark are mostly improving usability and/or graphical presentation. > From the Todo- and wishlist in the Wiki I could target (or at least support) > some of:**** > - New interface for different rendering engines, add OGRE support**** > **** - Enable new agent-server protocol to support using image sensor and > other things via new rendering engine.**** > **** - GUI for our simulator (possibly based on RsgEdit + > ZigoratAssistant, incl. easy construction of new robots and simulations, > moving robots on the field, etc.)**** > **** - Support Referee enhancements and trainer enhancements: (Drop a > player anywhere on the field. Drop the ball at any place (as drop ball, free > kick left or right) as is possible in 2D. Play Mode Control etc.. Control > e.g. via Monitor)**** > **** - Nice 3D visualization, including a stadium, animated crowd, > automatic commentator, slow-motion replay, etc.**** > **** - Training Capabilities through agent-monitor communication**** > > As i have about five and a half months of time I could probably connect > some of these tasks, but of course i will have to focus. For example > building a User Interface for Server, Monitor and Client Support (maybe like > WeBots) along with the possibilty to connect new modules for a RsgEditor and > new functionality would be possible. > At the same time, Peter Tissen (a friend of mine who is working here too) > is implementing Bullet as a pluggable Physics Engine optionally choosable > for the Simspark Simulation.**** > > First of all, to me it is most important to get feedback by those, who are > already experienced with Simspark. What is needed? What would be nice to > have/doable in this amount of time? What is definitely NOT needed? Whatever > will be done has to be accepted and integrated by the community, so it can > be of use and of course can be maintained and extended in the future by > everyone. So to begin with, in the following I have a list of ideas and > questions you may comment with whatever comes to your mind. The more > detailed, the better.** > > *What should a central user interface contain* > - starting server, monitor and agents**** > - controlling the server (game control, message overview, physics engine, > log control) **** > - controlling the monitor (views, rendering engine, video captures, game > camera)**** > - controlling the agents (message overview, message sending?, debug > interface?)**** > - creating and testing agents? (loading from collada?, annotating with > receptors and effectors?, coding?, visualize behaviour? control interface?) > **** > - be extendable to incorporate rsgeditor, further monitors, agent > visualizations...**** > * > Questions*: Is running most agents as simspark plugin possible? Or is it > better to offer some kind of debug messaging interface? How are agents > debugged in practice and could a central user interface working together > with server and visualization (see next point) be of help?**** > > My preference for an easy-to-create and -extend up-to-date GUI is > definitely QT.**** > > *What should an improved graphics engine/monitor be able to do?* > **** - Visualizing server or agent internal states? (view of agents, rule > checking, effector usage, agent state visualization)**** > **** - Improve Debugging/Logging by server and/or agents with a > documentation interface (visualizing and recording on request)**** > **** - graphics engine choosable? (currently built-in as fallback, > Ogre/Irrlicht as improvement). e.g. bind ogre to core scene graph via bridge > pattern.**** > **** - Shading, 1st alternative: GLSL Shading environment attached to > ogre**** > **** - pro: multiple render targets -> realistic lighting, improved > materials, point of view rendering for every agent, realistic sight > detection**** > -> implementation of Screen Space Lighting **** > -> implementation of Screen Space Ambient occlusion**** > - pro: Further rendering engines besides ogre can be connected the > same way**** > - con: bound to Ogre. When the interface should fail somehow, there > wouldnt be any improved shading anymore.**** > - Shading, 2nd alternative: basic GLSL Shading environment attached to the > monitors core, improving current indepandant shading ( allowing MRT Shading > too)**** > - pro: lightweight, same shading options like 1st option**** > - pro: easy and fast to implement, so i will have time for other > things **** > - pro: not dependant to ogre -> one needs no knowledge about ogre**** > - con: developing new shaders will be harder, as no combination is > possible natively**** > - con: lacking ogres support for Object loading, environmental > animation, scenegraph, materials etc.**** > - Object Shadows**** > - simple object shadows (blob under objects)-> easy, with ogre for > free**** > - directional shadow for each object -> easy because of flat ground, * > *** > - shadow mapping (allow shadows on objects)-> time consuming).**** > - Inner Shadows (Screen Space Ambient Occlusion, SSAO): only possible with > shader integration**** > - additional objects to render: seats, crowd, goal net, corner flags > (further objects would be easier when using ogre)**** > - graphics improvement: textures, sky, weather**** > - environment simulation (wind on grass, changing sky...)**** > > The main problem is how to improve the current monitor or create an > alternative one, that is easy to use and (most important) easy to maintain. > Various new possibilities like visual debugging and recording of server > internal states (rcssserver3d) and the agents could be integrated into the > visualization (or maybe better the GUI). I guess since rewriting the monitor > from scratch could lead to discarding any new implementation with the stable > one after im done, it my be better to make Ogre a pluggable option to the > current monitor. New possibilities for the monitor would most likely create > the need of extending the Server/Monitor MessageProtocol. Both implementing > Ogre as pluggable rendering engine and simply improving the engine already > in use are viable options. However, while creating a simple (yet good > looking) improved rendering style for the Monitor is an easy task, > connecting Ogre to the scene graph is not. **** > > So the Question: Is it better to simply implement a better visualization, > leaving much more time for graphical gimmicks, the GUI or > debug/point-of-view visualization and so on, or is it preferable to create a > flexible graphics-interface for the monitor and implement Ogre as the first > one, even if there wont be much more time for the actual visualization and > possibly more important tasks (central gui).**** > > This said for the two possible development fields... Again, the most > important thing is the acceptance in the community. I definitely dont want > to create an interface or program that cannot be used or maintained in the > future, should I not be able to continue. **** > ****Please send me E-Mails with comments, ideas, suggestions and anything > helpful you might come up with.**** > > Thanks a lot ;)**** > > Patrick Geib**** > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2d-oct > _______________________________________________ > Simspark Generic Physical MAS Simulator > simspark-devel mailing list > sim...@li... > https://lists.sourceforge.net/lists/listinfo/simspark-devel > > -- Adaptive Systems Research Group Department of Computer Science University of Hertfordshire United Kingdom |
From: Patrick G. <Pat...@on...> - 2011-11-14 09:01:19
|
Hi, Im nearly finished with the main framework for the Gui and about to finally add content. I created a project page in the Simspark wiki at http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface where I describe the structure, the idea behind it and what i am going to do next. Before I start with the main part (implementing control and view for SimSpark etc.), i wanted to inform you about the status. If you have any feedback, suggestions or ideas, please let me know via mail or simply comment using the wiki discussion page. Best regards, Patrick <http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface> |
From: Patrick G. <Pat...@on...> - 2011-12-20 03:50:13
|
Hi, Im continuing on the SimSpark Gui Project but i think i *might* have hit a roadblock. I hope it is nothing or at least solvable without changing zeitgeist too much, so heres the problem: The Gui is currently designed to start and watch different threads that might either be internal or external monitors, agents and (one) server. The concept is meant to define new Simulation Setups containing those threads, some scripts modifying the execution of the threads (e.g. loading NaoSoccer etc.) and loading different GuiPlugins for each Simulation without having to write new compilable projects or edit script files. So i wrote a more general class SimSpark derived from Spark (just als those in rcssserver3d etc), where i add resource locations and scripts at runtime. So far, executing the server as separate thread in the gui works without a problem. But now i need to start, stop and/or restart multiple instances of SimSpark at once or after another, for example restarting the Core or initializing two SimSpark objects at the same time for a distict server and a monitor. But zeitgeist crashes when it is initialized again after being closed, because there are some static properties and leftover references to the previous Core. While rsgedit avoids this problem by never actually removing its single Spark instance (but resetting it), this wont work in my case since i need more than one instance at the same time. I can seek and replace static references and objects in zeitgeist, oxygen and kerosin, but i dont know if the script interface is able to deal with multiple simulation/script servers anyway. In the ruby wrappers there dont seem to be any distict Ruby-Contexts but only one single interface. If so, is it possible to wrap the ruby calls without changing the whole core? Or will the interface work with different Script-Servers accessing it? I just need to know this before i attempt to rewrite parts of zeitgeist and oxygen. Of course there is the possibility of integrated monitors and agents in the server itself. But i definitely want to support external processes and (gui-)internal threads first. When not relying on the direct control of the core but using the tcp/ip commands first i can cover two kinds of execution (as thread in the gui, as process observed by the gui) at the same time. I dont know if i have time to implement both server-internal and external monitors and agents right away, so i want to stick with the more important kind. This way, both observing and controlling externally started processes (rcssagent3d.exe etc..), and integrating them into the gui to display and debug them in one window would be possible. Please tell me if you have some advice on how to deal with the situation. Also, you might want to have a look at http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface . If you have concerns ideas and/or wishes, you can always comment or edit on the project page describing the main features of the gui. It is meant to be used someday after all, so feedback from those who might want to use (and extend!) it is always appreciated xD Best regards, Patrick Geib |
From: Hedayat V. <hed...@gm...> - 2012-04-18 19:54:31
|
Hi Patrick, Sorry for the *long* silence about your email. Can I ask what happened finally? :P Anyway, about the ruby script engine: AFIAK, there are no 'contexts' there, so all Ruby calls are using the same ruby context. And if I remember correctly, you should not access it at the same time from separate threads. Besides, since there is only one context (if it is correct!), you might be unable to have separate instances of the system simultaneously (consider if two different instances want to assign different values to a single variable). Therefore, you might need to somehow! run different instances of Ruby engine, or maybe using a 'namespace' concept to create separate contexts for different instances of the Spark engine inside a single Ruby context. I wonder if you've already passed this problem! :D And I'm interested to know about the final solution in that case. :) I'll try to read all the related wiki pages you've created in a few days. :P Regards, Hedayat /*Patrick Geib <Pat...@on...>*/ wrote on Tue, 20 Dec 2011 12:50:00 +0900: > Hi, > > Im continuing on the SimSpark Gui Project but i think i *might* have hit > a roadblock. I hope it is nothing or at least solvable without changing > zeitgeist too much, so heres the problem: > > The Gui is currently designed to start and watch different threads that > might either be internal or external monitors, agents and (one) server. > The concept is meant to define new Simulation Setups containing those > threads, some scripts modifying the execution of the threads (e.g. > loading NaoSoccer etc.) and loading different GuiPlugins for each > Simulation without having to write new compilable projects or edit > script files. So i wrote a more general class SimSpark derived from > Spark (just als those in rcssserver3d etc), where i add resource > locations and scripts at runtime. So far, executing the server as > separate thread in the gui works without a problem. > But now i need to start, stop and/or restart multiple instances of > SimSpark at once or after another, for example restarting the Core or > initializing two SimSpark objects at the same time for a distict server > and a monitor. But zeitgeist crashes when it is initialized again after > being closed, because there are some static properties and leftover > references to the previous Core. While rsgedit avoids this problem by > never actually removing its single Spark instance (but resetting it), > this wont work in my case since i need more than one instance at the > same time. I can seek and replace static references and objects in > zeitgeist, oxygen and kerosin, but i dont know if the script interface > is able to deal with multiple simulation/script servers anyway. In the > ruby wrappers there dont seem to be any distict Ruby-Contexts but only > one single interface. If so, is it possible to wrap the ruby calls > without changing the whole core? Or will the interface work with > different Script-Servers accessing it? I just need to know this before i > attempt to rewrite parts of zeitgeist and oxygen. > > Of course there is the possibility of integrated monitors and agents in > the server itself. But i definitely want to support external processes > and (gui-)internal threads first. When not relying on the direct control > of the core but using the tcp/ip commands first i can cover two kinds of > execution (as thread in the gui, as process observed by the gui) at the > same time. I dont know if i have time to implement both server-internal > and external monitors and agents right away, so i want to stick with the > more important kind. This way, both observing and controlling externally > started processes (rcssagent3d.exe etc..), and integrating them into the > gui to display and debug them in one window would be possible. > > Please tell me if you have some advice on how to deal with the > situation. Also, you might want to have a look at > http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface > . If you have concerns ideas and/or wishes, you can always comment or > edit on the project page describing the main features of the gui. It is > meant to be used someday after all, so feedback from those who might > want to use (and extend!) it is always appreciated xD > > Best regards, > Patrick Geib > > ------------------------------------------------------------------------------ > Write once. Port to many. > Get the SDK and tools to simplify cross-platform app development. Create > new or port existing apps to sell to consumers worldwide. Explore the > Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join > http://p.sf.net/sfu/intel-appdev > _______________________________________________ > Simspark Generic Physical MAS Simulator > simspark-devel mailing list > sim...@li... > https://lists.sourceforge.net/lists/listinfo/simspark-devel |
From: Hedayat V. <hed...@gm...> - 2012-04-22 16:31:17
|
Hi Patrick, /*Patrick Geib <Pat...@on...>*/ wrote on Fri, 20 Apr 2012 13:29:39 +0200: > Hi, > Im currently on the finishing line for the project. There are only two > things left to do: Loading plugins als dynamic libraries and making > the project build like the others (besides, i named the Gui-Core > library "Carbon"... Apple cant keep the name forever i hope^^). > Except for these points the Wiki documentation is quite complete right > now (i will add some tutorials and a video introduction to the Gui > though). That's great. Specially that it is documented. :) > > The problem with the SimSpark handling was only avoidable, not > solveable... At the moment there can only be one instance of SimSpark, > so there is only one ruby "context". There is indeed a way to simulate > a second ruby context by using a wrapper that forwards every command > and access to a namespace in the main context... but this would > require a lot of changes in the core libraries... . Anyway, after a > few restrictions, this is not the main problem anymore. The only major > drawback that remains is that its impossible to reset SimSpark > completely so you cannot run different simulations in the Gui without > restarting it completely (for example a Soccer Simulation and > afterwards a Mars-Rover Simulation). > I will add an entry to the Wiki that points out which parts of > SimSpark would need a rework to make this possible. Sadly, this would > be a LOT of parts, because many of the libs and objects are not safely > removeable from the Scene Graph. Thanks for the description, and for adding the info to the wiki. > > For the final upload i have two questions: > 1) I used the most recent C++ standard for my code, which means i for > example have double closing template brackets ( > "shared_ptr<QList<int>> myList;" ) and used the auto keyword ( " for > (auto it = myList.begin(); it != myList.end)=; it++)... " ). If this > should be a problem for older compilers i would nee to change this > before uploading. I hope w are not using 10years+ old compilers ;) ? Hmmm... which version of the GCC is the first version which supports both? Anyway, your code is completely separate from rcssserver3d and simspark, right? If it make simspark and rcssserver3d not supporting older compilers, it might be considered an issue for a while. Do you know what is the first Ubuntu version which supports this syntax? (since most of RoboCuppers are using Ubuntu AFAIK). But if it is all new code, I think that's fine! > 2) To be able to control the scripts externally, i changed many of the > scripts (for example spark.rb). I added for example log functions in > the spark script and made the rcssserver3d script extendable by > additional scripts. I could simply upload the changed scripts as > replacements for the old ones (in the new branch), or upload both of > them with different names. For the default simulation (NaoSoccer) the > new versions of the scripts behave just like the old ones so replacing > should be no problem. If it doesn't affect the default simulation, IMHO it is fine to update the current scripts. > > I hope ill be finished in two weeks and put it in a new branch of the > SVN together with the modifications and the Bullet physics > implementation of Peter. It's great to hear that we have Bullet support too! :) Good luck, Hedayat > > Best Regards, > Patrick > > Am 18.04.2012 21:53, schrieb Hedayat Vatankhah: >> >> Hi Patrick, >> >> Sorry for the *long* silence about your email. Can I ask what >> happened finally? :P >> >> Anyway, about the ruby script engine: AFIAK, there are no 'contexts' >> there, so all Ruby calls are using the same ruby context. And if I >> remember correctly, you should not access it at the same time from >> separate threads. Besides, since there is only one context (if it is >> correct!), you might be unable to have separate instances of the >> system simultaneously (consider if two different instances want to >> assign different values to a single variable). Therefore, you might >> need to somehow! run different instances of Ruby engine, or maybe >> using a 'namespace' concept to create separate contexts for different >> instances of the Spark engine inside a single Ruby context. I wonder >> if you've already passed this problem! :D And I'm interested to know >> about the final solution in that case. :) >> >> >> I'll try to read all the related wiki pages you've created in a few >> days. :P >> >> >> Regards, >> >> Hedayat >> >> >> /*Patr ick Geib <Pat...@on...>*/ wrote on Tue, 20 Dec 2011 >> 12:50:00 +0900: >>> Hi, >>> >>> Im continuing on the SimSpark Gui Project but i think i *might* have hit >>> a roadblock. I hope it is nothing or at least solvable without changing >>> zeitgeist too much, so heres the problem: >>> >>> The Gui is currently designed to start and watch different threads that >>> might either be internal or external monitors, agents and (one) server. >>> The concept is meant to define new Simulation Setups containing those >>> threads, some scripts modifying the execution of the threads (e.g. >>> loading NaoSoccer etc.) and loading different GuiPlugins for each >>> Simulation without having to write new compilable projects or edit >>> script files. So i wrote a more general class SimSpark derived from >>> Spark (just als those in rcssserver3d etc), where i add resource >>> locations and scripts at runtime. So far, executing the server as >>> separate thread in the gui works without a problem. >>> But now i need to start, stop and/or restart multiple instances of >>> SimSpark at once or after another, for example restarting the Core or >>> initializing two SimSpark objects at the same time for a distict server >>> and a monitor. But zeitgeist crashes when it is initialized again after >>> being closed, because there are some static properties and leftover >>> references to the previous Core. While rsgedit avoids this problem by >>> never actually removing its single Spark instance (but resetting it), >>> this wont work in my case since i need more than one instance at the >>> same time. I can seek and replace static references and objects in >>> zeitgeist, oxygen and kerosin, but i dont know if the script interface >>> is able to deal with multiple simulation/script servers anyway. In the >>> ruby wrappers there dont seem to be any distict Ruby-Contexts but only >>> one single interface. If so, is it possible to wrap the ruby calls >>> without changing the whole core? Or will the interface work with >>> different Script-Servers accessing it? I just need to know this before i >>> attempt to rewrite parts of zeitgeist and oxygen. >>> >>> Of course there is the possibility of integrated monitors and agents in >>> the server itself. But i definitely want to support external processes >>> and (gui-)internal threads first. When not relying on the direct control >>> of the core but using the tcp/ip commands first i can cover two kinds of >>> execution (as thread in the gui, as process observed by the gui) at the >>> same time. I dont know if i have time to implement both server-internal >>> and external monitors and agents right away, so i want to stick with the >>> more important kind. This way, both observing and controlling externally >>> started processes (rcssagent3d.exe etc..), and integrating them into the >>> gui to display and debug them in one window would be possible. >>> >>> Please tell me if you have some advice on how to deal with the >>> situation. Also, you might want to have a look at >>> http://simspark.sourceforge.net/wiki/index.php/Graphical_User_Interface >>> . If you have concerns ideas and/or wishes, you can always comment or >>> edit on the project page describing the main features of the gui. It is >>> meant to be used someday after all, so feedback from those who might >>> want to use (and extend!) it is always appreciated xD >>> >>> Best regards, >>> Patrick Geib >>> >>> ------------------------------------------------------------------------------ >>> Write once. Port to many. >>> Get the SDK and tools to simplify cross-platform app development. Create >>> new or port existing apps to sell to consumers worldwide. Explore the >>> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join >>> http://p.sf.net/sfu/intel-appdev >>> _______________________________________________ >>> Simspark Generic Physical MAS Simulator >>> simspark-devel mailing list >>> sim...@li... >>> https://lists.sourceforge.net/lists/listinfo/simspark-devel > |