Page 1 of 6 123 ... LastLast
Results 1 to 20 of 112
  1. #1
    Member Sjoerd's Avatar
    Join Date
    Aug 2007
    Location
    Utrecht, The Netherlands
    Posts
    189

    The Hive system: version 0.90a (beta) released

    EDIT:
    - Version 0.90a2 has now been released
    - Please install Spyder 3.2.2 along with it
    - The post below has been rewritten


    As you may know, the Hive system is a Python system for nodal logic, and the focus of one of this year's GSoC projects.
    Here are some directions and updates for those who would like to follow its progress:

    What you should know first
    1. The hive system is still under development. The current version is 0.90a2, which is "beta-ish": The core functionality is done, but there is a lack of documentation, tutorials and missing parts of the standard node library.
    Also, it will take additional months until Hive will be ready for full integration with Blender: HiveGUI currently runs externally under Qt, and Blender itself is not yet ready to have it running inside Blender.

    2. The hive system is meant for two kinds of people:
    - Non-programmers who use logic bricks. Nodal logic is similar to bricks, but more powerful. The hive system has a GUI editor for nodal logic, see Using the GUI below.
    - Programmers who can code their own nodes in Python. See Learning more about the hive system below.

    Installing the hive system

    If you installed older versions of Hive and Spyder already, please uninstall them first.

    Add-on install
    This allows you to run the BGE examples (see below), but not the GUI
    1. Get the hive system zip file and the Spyder zip file
    2. Unzip them in your add-ons folder

    and/or

    Stand-alone install
    This requires a separate installation of Python 2.6, 2.7, 3.2 or 3.3
    1. You can download the hive system here (latest version: 0.90a)
    2. If you use the Windows installer, 32 bit Python is recommended; installers seem to have problems with the registry for 64 bit Python.
    3. It also requires Spyder to be installed (Hive 0.90a requires Spyder 3.2)

    Learning more about the hive system
    Programming in the hive system is a bit like Blender: hard and non-intuitive to learn, but consistent and very powerful once you have mastered it.
    However, when it comes to mastering, the documentation that I wrote is not very gentle. Fortunately, Agoose is writing some easy-to-understand documentation for Python programmers. There is now also a tutorial on visual programming with HiveGUI and WorkerGUI. For more information, see this thread .

    The hive tutorial
    Version 0.90 of the Hive system will contain a visual programming tutorial, with examples that use little or no Python. In 0.90a, this is still a stub. However, the tutorial does already contain a finished visual implementation of Tetris (with .blend). Use HiveGUI to open the hivemaps (tetris.hivemap and hivemaps/*) , SpyderGUI to open spydermaps/*, and WorkerGUI to open workermaps/*. The Python code generated from the workers are in workers/*.

    The manual and screencast
    For the brave of heart, there is also the complete 63-page long manual, with extensive examples, which is now available as a zip archive. Most examples are non-visual and require Panda3D to run.
    For all other people, I recorded a screencast demonstrating the final example of the manual. This example has also been ported to the BGE (see below). The screencast shows the older GUI, which has been superseded by the new HiveGUI (see below).

    Using the GUI

    You can now download a default empty HiveGUI project, including a .blend to run your hive inside the BGE.

    The Hive GUI
    There is now a hive system GUI to edit nodal logic. It has just reached beta, so there are bugs and very little GUI documentation. For now, you will mostly have to guess and try out what the nodes actually do (see Running the hive system in the BGE below), or browse their source code.

    Please note the following points:
    1. The GUI works outside Blender. Nodal logic is not yet editable from within Blender. Follow the instructions above in Installing the hive system: stand-alone install.
    2. The GUI runs under Python 2.6, 2.7, 3.2 or 3.3.
    3. You will need PySide or PyQt to run the GUI. Either of them will do, but PySide works best.
    4. The GUI scripts (HiveGUI, WorkerGUI, SpyderGUI) are installed into the Python scripts folder (C:\PythonXX\Scripts, or their Linux/Mac equivalents).
    In addition, under Windows, shortcuts are installed into your Start Menu under "Hive System", but this does not work for Python3.x (bug in Python).
    5. Hive system versions <=0.81 have an older GUI, which you can see in the screencast.

    WorkerGUI and SpyderGUI
    Since version 0.83, there is also a WorkerGUI. With the Worker GUI, you can create your own custom worker nodes by visual programming. These workers can then be used in HiveGUI, together with the existing dragonfly workers, to build nodal logic. See Agoose's tutorial for more information.
    SInce version 0.90a, there is a SpyderGUI to add custom data (Canvas slots, icons, animations) to the hive.
    The points above also apply for WorkerGUI and SpyderGUI.

    How to make the hive system run under the BGE
    You will need Blender 2.64 or 2.65 for this. Blender 2.65 only works with Hive 0.90a or later.
    There are two ways to get it working:

    A. With the hive system installed as an add-on

    This should work out of the box

    AND/OR:

    B: With a stand-alone install of the hive system
    This requires a stand-alone install of Python. Any version should do.
    First, follow the instructions above in Installing the hive system: stand-alone install.
    Then, you must create a PYTHONPATH environment variable with the value "C:\PythonXX\Lib\site-packages" (or the Linux/Mac equivalent). Else, Blender will not find the Hive system. Google "create windows environment variable" if you have never done this.

    BGE examples of the hive system
    - The best example of nodal logic is currently this blend. You can spawn monsters that are controlled by nodal logic. You can edit the .web files (hive maps) with the hive GUI to modify the logic.
    This .blend is a port of the final example of the manual, and is also shown in the screencast. See Learning more about the hive system above.
    - See also the Tutorial above, showing a full visual implementation of Tetris (with .blend)
    - You can find two more .blends on my wiki to play with: a Tetris game (non-visual implementation) and an animated spider. They use low-level nodes, built and connected in Python, no fancy visual graphs. They can be run under the BGE inside Blender. (Blenderplayer also runs, but there are still some glitches in keyboard input.)
    - You can now download a default empty HiveGUI project, including a .blend to run your hive inside the BGE.

    Community input on node design
    At some point, community input will be needed on the design of nodes. What nodes would you like? Should they work exactly like the current logic bricks, or do you want them to be different? I can give everyone their own customized version of the Motion Actuator if they like, coding them is no trouble at all. But some community standards might be helpful, just to make sure that people can come to this forum for help about nodes and talk about the same thing.

    This will become more relevant once the Hive system has matured a little bit further.
    But in the meantime, everyone is welcome to post or send me mockup node diagrams or individual node designs, and I will see if I can implement them already.
    Last edited by Sjoerd; 19-Dec-12 at 05:01. Reason: 0.90a2



  2. #2
    Member BlendingBGE's Avatar
    Join Date
    Nov 2009
    Location
    Earth>Romania
    Posts
    1,578
    I am going to try this when I get home, interesting.
    The Quantum ... .on the way.



  3. #3
    Originally Posted by Sjoerd View Post

    Community input on node design
    At some point, community input will be needed on the design of nodes. What nodes would you like? Should they work exactly like the current logic bricks, or do you want them to be different? I can give everyone their own customized version of the Motion Actuator if they like, coding them is no trouble at all. But some community standards might be helpful, just to make sure that people can come to this forum for help about nodes and talk about the same thing.

    This will become more relevant once the Hive system has matured a little bit further.
    But in the meantime, everyone is welcome to post or send me mockup node diagrams or individual node designs, and I will see if I can implement them already.
    Hi, seem very interesting!

    my dream is a things like this: (see image)
    a node system to manage more script .

    O_O' is possible? (meanwhile read other link , but i m very slow to read)


    PS: is is not clear in the image , once node is a piece of script
    Attached Images Attached Images



  4. #4
    Sounds really interesting. I don't care right now to install everything, but when it gets a little easier to get to the nodes, I'd like to test it out!



  5. #5
    Member Rubbernuke's Avatar
    Join Date
    Aug 2010
    Location
    Peyrat Le Chateau, France
    Posts
    979
    It certainly looks good, and I look forward to using it!

    You may want to look at PlayMaker from Unity3D for some node ideas (in fact Unity has a few systems like this).



  6. #6
    Member Sjoerd's Avatar
    Join Date
    Aug 2007
    Location
    Utrecht, The Netherlands
    Posts
    189
    @MarcoIT:

    Originally Posted by MarcoIT View Post
    Hi, seem very interesting!
    my dream is a things like this: (see image)
    O_O' is possible? (meanwhile read other link , but i m very slow to read)
    You don't have to read, you can also watch the Hive system screencast!
    Here is a screenshot

    Screencast.png
    Is this what you were dreaming?


    However, the GUI stilll looks ugly, because I am very bad at GUI design...
    But I found a very pretty GUI, which I will adapt to the Hive system.

    So, hopefully, in a few months, the Hive system GUI looks like this:

    coralscreenshot_.jpg

    @Rubbernuke:

    Sorry for not being clear... There will be of course nodes for motion, keyboard, animation, physics, state machines, etc.

    What I need to know, how do you want them to work?

    The current Motion Actuator runs every tick, do you like it that way?
    Or should it only run when it gets a trigger from its controller?

    Logic Brick sensors have only 1 output. Therefore, the Keyboard Sensor gives positive (keypress) and negative (keyrelease) pulses.
    Hive system nodes have as many outputs as you like. So, a Keyboard Sensor node could have 2 separate outputs, for press and release. Or, do it like the Logic Brick, with 1 output. Or, there could be 2 versions, leaving the choice to the user.

    Coding these nodes is very easy. But searching among hundreds of nodes can be confusing to the user!



  7. #7
    Member agoose77's Avatar
    Join Date
    Aug 2010
    Location
    United Kingdom!
    Posts
    4,395
    I think it would be important that you used the existing ui that blender has for node development.



  8. #8
    agoose, i think a different look would be refreshing. Something to make it feel more like a programmer's tool and not an artist's
    skypename: matthew-mokazon
    Im available for freelance work - programming, animation, modelling, texturing



  9. #9
    Member Sjoerd's Avatar
    Join Date
    Aug 2007
    Location
    Utrecht, The Netherlands
    Posts
    189
    Originally Posted by agoose77 View Post
    I think it would be important that you used the existing ui that blender has for node development.
    The existing ui for node development in Blender is unfortunately in C, and tightly bound to compositing.



  10. #10
    Member Rubbernuke's Avatar
    Join Date
    Aug 2010
    Location
    Peyrat Le Chateau, France
    Posts
    979
    I don't think it would be detrimental to the user if there were hundreds of nodes (bees?) as long as there was a way to search for them (or read the documentation!).

    From your example, it would be great for your keyboard sensor/bee/node if you could amalgamate key just released, key pressed, key inactive etc states into one node, as this is not available in logic bricks.



  11. #11
    Originally Posted by Sjoerd View Post
    Is this what you were dreaming?

    not exactly , i had thinked to a system of little(very little) "icon" which you can close completely (similar to actual LB)

    and when you close it , still only one preset visible
    also the name must still hidden in my opinion,also need a grid to snap the icon(to make less mess)

    the icon should mean a group of things , with 10 group more or less
    (graphic/sound/script/physic/action...)


    the goal should be make the same thing of actual brick but in less space and with more semplicity..so..

    this image below has the same size wich usually has the logick brick at bottom of screen


    this is a mix , between logic brick/node/notepad++
    Attached Images Attached Images



  12. #12
    mhh...maybe the "minimize" is not a good idea....!


    EDIT: anyway , i not use the much the brick , so, my point of view can be wrong ,
    to me seem more interesting the ability to give more "physic" to the script
    Last edited by MarcoIT; 02-Jun-12 at 04:34.



  13. #13
    Member Blendiac's Avatar
    Join Date
    May 2007
    Location
    North of Toronto, Ontario, Canada
    Posts
    903
    Just, please, whatever you do, don't get into the cutesy metaphorical naming of everything, so we have to explain to confused new users over and over again that a "bee" means a node, a "nest" means a group of nodes, a "flower" is an input etc. They did that over on Diaspora (pod = server, seed = profile etc) and it just gets confusing, especially when comparing to other similar projects (ie a Diaspora pod equals a Libertree Tree equals a server).

    Personally I'd much rather have new users, who already understand nodes, node groups, inputs and outputs from other apps, just have the easiest to understand names possible.



  14. #14
    Member agoose77's Avatar
    Join Date
    Aug 2010
    Location
    United Kingdom!
    Posts
    4,395
    I'd be happy to help you with GUI design after exams!



  15. #15
    Member Sjoerd's Avatar
    Join Date
    Aug 2007
    Location
    Utrecht, The Netherlands
    Posts
    189
    Originally Posted by agoose77 View Post
    I'd be happy to help you with GUI design after exams!
    Great!
    For the outside-Blender GUI: I am now adapting the GUI from the Coral project (with the developer's blessing), and I am working on an auto-generated parameter editor based on Qt Quick.
    Concerning an in-Blender GUI: Lukas Toenne mentioned that the Blender node editing code is being decoupled from compositing, but I haven't checked his code yet.
    And of course, help on the design of individual nodes is most welcome. It would be great to adapt your multiplayer component to the hive system.



  16. #16
    Member Sjoerd's Avatar
    Join Date
    Aug 2007
    Location
    Utrecht, The Netherlands
    Posts
    189
    Originally Posted by Blendiac View Post
    Just, please, whatever you do, don't get into the cutesy metaphorical naming of everything, so we have to explain to confused new users over and over again that a "bee" means a node,

    ...

    Personally I'd much rather have new users, who already understand nodes, node groups, inputs and outputs from other apps, just have the easiest to understand names possible.
    Are you sure that you know what you are talking about?
    Every domain-specific node system has their own way to implement node mechanics. A node in a live coding system works completely differently from a Blender compositing node. The confusion is already there.

    The hive system is meant to be domain-independent, and it can emulate the mechanics of pretty much any other node system out there. There are currently ten flavors of bees and three flavors of hives. The GUI user will see only a few of them; you are welcome to select one flavor of each and call them "node" and "node group", but I doubt that it will make things any clearer.



  17. #17
    Member agoose77's Avatar
    Join Date
    Aug 2010
    Location
    United Kingdom!
    Posts
    4,395
    Originally Posted by Sjoerd View Post
    Great!
    For the outside-Blender GUI: I am now adapting the GUI from the Coral project (with the developer's blessing), and I am working on an auto-generated parameter editor based on Qt Quick.
    Concerning an in-Blender GUI: Lukas Toenne mentioned that the Blender node editing code is being decoupled from compositing, but I haven't checked his code yet.
    And of course, help on the design of individual nodes is most welcome. It would be great to adapt your multiplayer component to the hive system.
    Sounds like a nice plan. One thing; what differs between the GUI inside Blender, and that outside? Does it not run within Blender, or are you referring to the testing implementation / node design?

    Also, I beleive Blendiac refers to the sometimes intoxicating names that developers assign their projects, but I think as long as the users of the system are aware of the scope of the project, (How a hive and bee relate) then there oughtn't be a large learning curve.



  18. #18
    Sjoerd,
    I would like to help with the node design and development, I'm specially interested in top down designs and I hope I can help. I was last year involved as the GSoC student, and would love to help in what I can.



  19. #19
    Has anybody contacted Lukas to get his input on this?

    Maybe you can use an existing node system framework to use for the game engine. I know he demoed a custom node system for Material/Textures/Compositor nodes.
    http://www.sinsoft.com - Sinsoft's BGE dev site - Sinsoft's BGE 2013 suggestions list for devs
    Ubuntu 13.04 (64bit), Ivy Bridge (Dual-Core, Core i7, 2.00GHz × 4), Intel® HD Graphics 4000, 4GB RAM



  20. #20
    Member Moguri's Avatar
    Join Date
    Jun 2008
    Location
    USA
    Posts
    1,813
    The more Blender code we can re-use, the better. So, if any of Blender's node code can be re-used, it would be preferable. Also, please, please don't write you own math library if you were planning to. There are about 3~5 math libraries scattered through out the Blender source code.



Page 1 of 6 123 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •