The Hive system: version 0.91 released

oh wow I’m impressed :o
wasn’t expecting this to already be in development…

if I could get any documentation toward the inner workings of this, it would help me out greatly.
here’s some images of my ideas:
[SPOILER]
http://lh4.ggpht.com/-TyjxEfLvDjM/UG3JK0ljcfI/AAAAAAAAEFE/mplNn9a-p0A/s430/if%2520example.PNG

http://lh5.ggpht.com/-fWDIgxm4GpY/UG3JKzdErAI/AAAAAAAAEE8/Ikx-55hMThw/s288/switch_case%2520example.PNG

http://lh6.ggpht.com/-KN0cOquv-Q4/UG3JLMPwNuI/AAAAAAAAEFI/EpVbJ_aZQoU/s387/while%2520example.jpg[/SPOILER]

I’ll see if I can offer any possible input when I can :wink:

The inner workings, eh? Ok, now you asked for it:
https://launchpad.net/hivesystem/trunk/0.83/+download/manual.tgz
I am not responsible if your brain gets eaten!

Help with the hive system is always welcome :slight_smile:

Looking at your top example: Your red lines seem to be equivalent to hive push-trigger connections (they are also red in the Hive GUI). Your grey lines correspond to hive pull connections. I can’t see what your black lines mean, though.

Making hive system workers (nodes) with little Python expressions inside shouldn’t be hard to implement.
It’s just that I haven’t given it much thought yet, but apparently you have!
If you can specify your ideas in a design document, I will see what I can do.

thanx so much =D
I don’t think I have a brain left to eat, as my previous knowledge in building UMC already ate it. XDD
(this will just help me get even closer to converting a Wii .dol file to a windows .exe, or an XBox .xbe file)

sry I didn’t have much time to explain… (don’t have net on my home compy)

the red lines are basically the path of your program.
the grey and black lines are basically the same, but the black is more emphasized toward the variable’s set command

Va = var
Vl = Value

everything else should be pretty self-explamitory :stuck_out_tongue:

I do need Ideas toward the ‘elif’ option though, as I don’t really like leaving the data inputs unmanaged…
I also need help towards array types… (dictionaries { ’ ':[ ] }, lists [ ], tuples ( ), and any others)
another thing would be evaluations and pointers, which I really need help with understanding.
(I can’t work in C** or other high-end languages because of this) :frowning:

tbh, I do believe the interactivity of the nodes are a bit too much…

I was more inspired by Minecraft Redstone with this idea, and decided to use it in a sort of node-brick style fascion…

EDIT:
oh and the python expressions were really just example codes to follow :3

but you did just give me an idea towards a visual scripting editor :smiley:
(if you type a variable in the script editor, a block will automatically appear in the main editor)

hey… :slight_smile:

well, I read your manual a little, and there’s quite alot to get the hang of D:
and ntm how much you have to DL just to get it working :confused: (not a big fan of this)

UMC includes everything needed (including Python) so all you have to do is DL and run
Panda3D I’m not a big fan of cause it’s an add-on that isn’t too popular (compairing to OpenGL and that)

but anyways…
I’m more interested in what types of nodes you’ve defined :confused:

where can I find that in the src??

also… I’m a functional programmer as I SUCK at using classes XDD
so I may come back for a few explainations :stuck_out_tongue:

also…
despite the bamf’s I gave you, I have to say:
I think you’re project is VERY impressive =D
I really hope to see it implemented in future blender builds :wink:

from the looks of it though, my language seems to be a little different from yours >_>
mine is supposed to follow as close to assembly as possible.

this is so decompilation from assembly to whatever your preferred language is will be possible
(code may not look like it did when written, but it will work as it should)

actually it’s ment for converting programming languages by their assembly

Don’t worry about it.
Hive is experimental, and experimental things take effort to get it working.
For example, if you wanted a new Blender feature that has just been committed to trunk, you would have to compile Blender yourself. Believe me, that takes a lot more effort than installing Hive!
But if you just wait some months, then the feature comes with the new Blender, just run the installer.
And if you wait some more months, then there will be tutorials and videos that demonstrate how to use the new feature.

alright… yea…
I feel ya there, I mean… UMC took more than a few months to get this far, and I’m only just now working on it’s GUI.
(I’m using my own methods though instead of the GL select buffer)
I still have yet to implament my own modelling system into UMC:

^my curve generation aglorithm is incomplete, but it’s supposed to be where a 8 verts make a sphere…
(advanced: 4 verts can make a sphere)

But Hive is not a collection of nodes. It is a node-creating machine, with many buttons, and new buttons still being added. There are no easy tutorials yet on how to operate the machine: it is still experimental, and it may blow up in your face once in a while. But once you have learned it, Hive allows you to create new nodes in a couple of minutes.

oh I see
then I had the wrong idea :stuck_out_tongue:

interesting though, and that explains why there’s alot that goes into it…

in that case, with something this loose, you just need to organize the documentation as to the full potential of hive :wink:

as for progress on my language, here’s a few list and dictionary examples:

http://lh6.ggpht.com/-_3SXjrqbaks/UIMuUvPQoWI/AAAAAAAAEI0/Z41sSc8_m1s/s499/Li%2520and%2520Di%2520indexing%2520example.PNG
^I’m thinking about adding a set option to the Id block to allow you to use an index as a var:
dlv[‘opt2’][0] = 6

I still need help with functions and classes though…

also… UMC doesn’t contain even a single class.
(it’s entirely done through a chain of functions in a main loop)

Yes, our languages are a bit different :slight_smile:
I don’t think you are talking about assembly: assembly involves a lot of MOVs and registers and direct CPU control, and few people have used it since the eighties. You are probably talking about AST.

AST??

well…
as long as I can take an REL and convert it to a DLL, then that’s fine with me
( REL associates with DOL as DLL associates with EXE )

Hi
I know that Hive is originally used as replacement for old Logic Bricks.
But I am curious if it would be possible to use Hive system same way as Mecanim in Unity 4 ? :confused:
I mean to create large blend trees of animations. You can look at Mecanim here:

Thanks!

Hmm… I hadn’t heard of Mecanim, and it is hard to look through the advertisement fluff… but as far as I can see, Mecanim = animations + state machines + nodal logic interface, right? Nothing more?

Blender has a very powerful animation system.
State machines are in the current logic bricks already, and porting them to Hive is on the to-do list. If you are a (Python) programmer, perhaps you would like to help? :slight_smile:
The hive system has already nodes for animation control, have a look at the moving panda/spider example.

Does that answer your question?

Thanks for answer. I think that you are right…there is not anything more than that.
Well I am not experienced Blender user definitely not some developer (sorry :frowning: ).
I didnt know that bge can do such things! :eyebrowlift: I havent used bge much and currently I am working (with friend) in unity, but we are considering switching to bge and this news will help us to decide. :slight_smile:

Cheers!

hey Sjoerd…

I just want to ask what you think of me posting my project here with updates… :confused:
I know this is your thread and I try to respect that…
but in my position, my script has everything to do with UMC… not Blender…
I don’t think I should create a thread that simply reccomends my progress… heh.

if you mind me showing off here, then I can respect that :wink:

Sure, give us a link to your project! Comparisons with the hive system, and general discussions on nodal logic (i.e. what are the requirements of a node system) will be useful too.
Long discussions that are specific to your project may be better held in a separate thread (which you can also link here).

alright…

I don’t have a project thread here as UMC isn’t Blender related other than it’s “*.blend” i/o script…

but either way…
the info passed here would hold for development between systems. :smiley:

anyways…
so here’s my current progress:
http://lh6.ggpht.com/-daKQtqtziwU/UMeUsVrVRUI/AAAAAAAAEMw/ctLIAipd20Q/font.PNG
http://lh4.ggpht.com/-7HIIyZjuqcM/UMeUszclh0I/AAAAAAAAENA/iNw9o-y2CRY/internal%2520data%2520display.PNG
^ this image shows the updated Bezier connections and sored values

Nodes: (excluding ‘Bl’)

‘Bl’ is the same as ‘Eq’ but with Boolean values and tests

‘Cl’ isn’t explained well above…
it’s ment for setting a previous var with another updated var’s value
I also intend to use this for function calls and class references.

also…
I have an idea for functions, but it’s not entirely complete…

Fn - Defines the function
Fv - Defines a function variable

the function is connected to function variables which are updated and referenced by code following the function path.

Hmm… can you give a link for download? What language is it written in?

Also, I would recommend that you select some example project, a simple game like Tetris.
A typical implementation of Tetris is about 500 lines of code. Hive 0.9 will come with a visual Tetris implementation, consisting of a few hundred visual elements (nodes and connections) and about 70 lines of Python code. If your nodes can get rid of the final 70 lines without creating a mess of spaghetti, that would be quite interesting.

ehheh…
I’m afraid it’s only as much as a viewer right now…
so I don’t have a download… :frowning:

but I can tell you it’s written in python… :slight_smile:

my nodes have to be simple enough to handle various ASM calls,
but be versitle enough to handle different aspects of common programming languages…

a game of tetris may end up looking like a tangled mess…
so I intend to place modifications to deal with that when rendering >_>

wow if this hive project is what i think i love it have you seen this
palymaker http://www.hutonggames.com/

playmaker is more artist friendly i dint know at what level is your hive system is but look promising

Playmaker is more like the existing BGE logic bricks: easy to use, but limited in power.
In contrast, the hive system is very serious: power comes first, user-friendliness will be addressed once everything works.

I think that the closest Unity equivalent is Antares VIZIO Universe. Check out the following links that compare Universe vs. Playmaker:

http://forum.unity3d.com/threads/85882-Antares-Universe-or-Playmaker-or-else
http://www.gamedevuniverse.com/blog/antares-universe/

I think that many of those points apply to the Hive system as well.

Any idea how much work it’s likely to take to get HIve to the point where it has the basic functionality ready to merge? Dozens of hours? Hundreds? Thousands? Two? (Ok, wishful thinking on that last one!)

The nice thing about hive is that it is written in Python. The few C++ commits were to enable the control of the gameloop (progression of logic frames and other game data) so that we have a truly alternative logic system. There are one or two things that ought to be tidied up, such as an interface that loads and runs HIVE output (either webmaps or python code) (at the moment we must use a custom property on the scene with a script name). The UI runs independently from Blender for now. Once the Python nodes are in trunk we can look at using the existing node interface to develop a native UI.
In order to answer your question; It’s already useable. I have created some tutorials which you may have seen that enable you to control Game Objects, scene data and so on. It’s just a case of working out the logic. I actually did all of the tutorials without writing any HIVE setup logic, other than to open the webmap. So, you would be just as able to do so if you watch the series.
We’ve got to establish what the current goal for HIVE is, and then progress from there. Most of the issues are with Blender UI rather than functionality of HIVE.

well, I’ve made progress on the bezier curve connections:
http://lh6.ggpht.com/-ECWtb-xjNvs/UMz-SQCEBnI/AAAAAAAAEN8/iSxPj99BqgQ/s640/Bezier%2520points.PNG
now it uses 6 points instead of 4…
where the 2 mid-points try to keep the curves away from the nodes

here’s what it looks like w/o the point data:
http://lh4.ggpht.com/-wZMc6tm2XUk/UMz-SdyK5zI/AAAAAAAAEN4/OBF8K0hwknU/s640/Bezier%2520Curves%2520%2528Final%2529.PNG

there’s another node I’m working on adding…
(have to rebuild the data stricture again)

Re - “Return” which updates the function’s internal return value

@Sjoerd:
I’ll post my own thread next time I have net.
would you like me to delete my posts here when I post my link??

Yes, please. Posts like “I have made progress on UMC feature X” with big screenshots should belong in your own thread. Of course, you are most welcome to discuss the general features of UMC vs Hive vs other node systems here.
I will give a little assist and I am asking you the following: what is your opinion on visual programming’s big flaw, the Deutsch limit, and how do you intend to solve it?