Current goals, was Re: [vos-d] here's another format :-)
One more priority we might consider is an object-editing window that can be used in terangreal (or other apps). ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] here's another format :-)
On Thu, Oct 27, 2005 at 04:45:28PM -0400, Peter Amstutz wrote: > Not sure what you mean by "things that arn't files" but you did just get A database for example, or querying into some other application to get its data. So you associate e.g. foo://server:1234 with a "parser" that really loads all the data available by protocol "foo". ... Just saying that you can have other kinds of data sources than just files. > Goal: Make Ter'Angreal the software that enables the 3D web > Current challenges: >can't make 3d worlds by hand & 3d data import sucks -> no content >interactive apps need to be written in c++ -> no interactivity >building VOS is a pain in the ass -> scares away developers > > solutions: > no content: >-> text format(s) make it easier to write by hand >-> xml format(s) make it easier to write exporters from other programs >-> converter architechture makes it easy to plug in data import and > have it work seamlessly (every VOS app immediately gains ability to > read that document format) When Peter adds this, would anyone be interested in using it to write something to load, like, Quake2 or Doom levels? There's a near endless supply of them on the net. >-> maybe finish the vrml geometry importer (reed? :-) I just made it compile again with openvrml cvs. I can seperate out the code that does the initial traversal of the vrml to create vobjects. Still need to sort out some issues with transforming the scenegraph into a flat vobject list (or make a vobject scenegraph work in csvosa3dl) and maybe add support for a few more node types... > > interactivity: >-> python bindings are underway (they kind of work?) They need more testing, and swig generates a zillion warnings that we need to resolve or decide can be safely ignored. And not everything is supported yet, but most of the Vobject API and Property are there. Should add A3DL to achieve your Goal. Reed ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] here's another format :-)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Thu, 27 Oct 2005, Reed Hedges wrote: On Thu, Oct 27, 2005 at 10:02:16AM -0400, Peter Amstutz wrote: So what the hell, we can support both. They are structurally identical (since they represent the same thing) so I may even be able to reuse some of the code from the XML loader. We can have any number of such formats! Having seperate parsers and parse-controllers or whatever will be a great benefit actually, for example for loading from things that aren't even files. Not sure what you mean by "things that arn't files" but you did just get me thinking about the loader/converter framework I have wanted to do for a while for handling non-COD files. What this would be is a unified interface for importing/exporting any relevant supported file format, not just VOS-specific ones. For example, loading ASE or VRML 3D models would automatically convert them into A3DL, loading a XHTML document would convert it into HyperVOS, and so forth. This could be very powerful. Alright, after I finish XOD, I'll add a converter interface. Then we'll be able to move the functionality of a3dlconverter into a library so that it can be accessed by any application. On a side note, we've wandered a bit from my original task, which was to rewrite the vosapp configuration implementation to not require flex. I think the tasks we've come up with are valuable, but a little bit of discipline might be helpful in setting priorities. Here's how I see the current work fitting together: Goal: Make Ter'Angreal the software that enables the 3D web Current challenges: can't make 3d worlds by hand & 3d data import sucks -> no content interactive apps need to be written in c++ -> no interactivity building VOS is a pain in the ass -> scares away developers solutions: no content: -> text format(s) make it easier to write by hand -> xml format(s) make it easier to write exporters from other programs -> converter architechture makes it easy to plug in data import and have it work seamlessly (every VOS app immediately gains ability to read that document format) -> maybe finish the vrml geometry importer (reed? :-) interactivity: -> python bindings are underway (they kind of work?) -> need to provide highlevel API to support highlevel events and queries, such as proximity, collision detection, line of sight building VOS: -> eliminate dependency on flex to generate scanners & replace with TinyXML and boost::spirit -> take another look at generating Visual Studio project files automatically from automake files (currently there is a tool that generates nmake files from automake files) Finally, I'd like to start thinking about a proof-of-concept interactive 3D application to develop with VOS. I have a vague idea of maybe doing a very simple first person shooter. Just deathmatch, no bots (unless Kao or dmiles want to write one :-), only a few weapons, arenas are just arbitrary VOS worlds. The goal being to test a) the network architechture, b) the extensibility of ter'angreal and c) the feasability and ease of implementing the all rules on the server in Python. [ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ] [Lead Programmer][Interreality Project][Virtual Reality for the Internet] [ VOS: Next Generation Internet Communication][ http://interreality.org ] [ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFDYTxsaeHUyhjCHfcRAiH2AJ4waFvY+Gm+kdRstpWvlr9k+gAthACggGPm W6VyzoLah9REt0t8O15MeOg= =YSj2 -END PGP SIGNATURE- ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] here's another format :-)
On Thu, Oct 27, 2005 at 10:02:16AM -0400, Peter Amstutz wrote: > So what the hell, we can support both. They are structurally identical > (since they represent the same thing) so I may even be able to reuse some > of the code from the XML loader. We can have any number of such formats! Having seperate parsers and parse-controllers or whatever will be a great benefit actually, for example for loading from things that aren't even files. > You cut and pasted this twice in your message, leading to some confusion > :-) Oops, sorry. > > I notice here you are using parenthesis instead of curly braces. Any > particular reason? It's hard to tell the difference on the laptop screen I was using (in the dark) at the time :) Reed ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] here's another format :-)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Thu, 27 Oct 2005, Benjamin Mesing wrote: Hello, Try writing something in this syntax that could be a Terangreal config file and see if it would make some sense to users who are not vos experts... Ok, I think here my opinion is needed :-) Your opinion is very much appreciated! config ( avatar is misc:avatar, a3dl:object3d ( What does this mean? Is an avatar defined as being a combination of a misc:avatar and an a3dl:object3d? Yes. This kind of "multiple inheritance" or "multiple interfaces" is very common in VOS. misc:nick = "reed" misc:realname = "Reed Hedges" a3dl:model = /home/reed/models/treefrog.md2 a3dl:material is a3dl:material ( a3dl:image = /home/reed/models/treefrog.png ) Obvious. Though I am not sure about the qualification. E.g. misc.nick - does this refer to misc:avatar.nick? -- See I don't know anything about the VOS internals... I'm glad that you find it pretty obvious, that's actually very encouraging. The prefixes "misc:" and "a3dl:" are namespace qualifiers. For all vobject types in the "misc:" namespace, the property "misc:nick" should mean the same thing (the nickname of the avatar, in this case). Same thing for the "a3dl:" namespace. For example, "a3dl:position" means the same thing regardless of whether it is attached to a light, a camera, a 3d object, etc. However, a property named "misc:position" could mean something totally different, because it is in the "misc:" namespace. In fact these are actually conventions that arn't (currently) enforced by the code, but by following them we should be able to avoid a lot of confusion and conflict over common property names. ) viewmode = "thirdperson" I think I understand this one. Btw. was there a reason for putting the config twice? I think that was a cut and paste error :-) That actually wouldn't be legal, because you can't have two vobjects with the same name at the root (site) level. [ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ] [Lead Programmer][Interreality Project][Virtual Reality for the Internet] [ VOS: Next Generation Internet Communication][ http://interreality.org ] [ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFDYOMdaeHUyhjCHfcRApc+AJ9VVf69ZtTt38fOziT7uvSJml6TFQCfScGe /c7DKP3pwlAsZzAmYa/p1ls= =Alt+ -END PGP SIGNATURE- ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] here's another format :-)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Wed, 26 Oct 2005, Reed Hedges wrote: I like this one too I think. In one part of the example you forgot to write "is", I wonder if that could be optional... ? :) What part? I don't see where I dropped the "is". The "is" will probably be required. Ok, the vibe I'm getting here seems to be that people really want both. An XML format seems to be a good idea for practical/political reasons, but the 2nd format we're discussing here certainly has its advantages. So what the hell, we can support both. They are structurally identical (since they represent the same thing) so I may even be able to reuse some of the code from the XML loader. Try writing something in this syntax that could be a Terangreal config file and see if it would make some sense to users who are not vos experts... config ( avatar is misc:avatar, a3dl:object3d ( misc:nick = "reed" misc:realname = "Reed Hedges" a3dl:model = /home/reed/models/treefrog.md2 a3dl:material is a3dl:material ( a3dl:image = /home/reed/models/treefrog.png ) ) viewmode = "thirdperson" ) You cut and pasted this twice in your message, leading to some confusion :-) I notice here you are using parenthesis instead of curly braces. Any particular reason? In the format I had in mind, parenthesis would be used to note the datatype of a property, and curly braces would hold vobject descriptions. [ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ] [Lead Programmer][Interreality Project][Virtual Reality for the Internet] [ VOS: Next Generation Internet Communication][ http://interreality.org ] [ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFDYN3raeHUyhjCHfcRAlamAJ49YTP/Trs7Jv8CJ28SUuzr8Xo5/QCgqvuh qoPHSt/WxQP8b+f5SX1fkcA= =MqDG -END PGP SIGNATURE- ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] here's another format :-)
Hello, > Try writing something in this syntax that could be a Terangreal config file > and > see if it would make some sense to users who are not vos experts... Ok, I think here my opinion is needed :-) > config ( > avatar is misc:avatar, a3dl:object3d ( What does this mean? Is an avatar defined as being a combination of a misc:avatar and an a3dl:object3d? > misc:nick = "reed" > misc:realname = "Reed Hedges" > a3dl:model = /home/reed/models/treefrog.md2 > a3dl:material is a3dl:material ( > a3dl:image = /home/reed/models/treefrog.png > ) Obvious. Though I am not sure about the qualification. E.g. misc.nick - does this refer to misc:avatar.nick? -- See I don't know anything about the VOS internals... > ) > viewmode = "thirdperson" I think I understand this one. Btw. was there a reason for putting the config twice? Best regards Ben ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
Re: [vos-d] here's another format :-)
I like this one too I think. In one part of the example you forgot to write "is", I wonder if that could be optional... ? :) Try writing something in this syntax that could be a Terangreal config file and see if it would make some sense to users who are not vos experts... config ( avatar is misc:avatar, a3dl:object3d ( misc:nick = "reed" misc:realname = "Reed Hedges" a3dl:model = /home/reed/models/treefrog.md2 a3dl:material is a3dl:material ( a3dl:image = /home/reed/models/treefrog.png ) ) viewmode = "thirdperson" ) config ( avatar is misc:avatar, a3dl:object3d ( misc:nick = "reed" misc:realname = "Reed Hedges" a3dl:model = /home/reed/models/treefrog.md2 a3dl:material is a3dl:material ( a3dl:image = /home/reed/models/treefrog.png ) ) viewmode = "thirdperson" ) reed ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
[vos-d] here's another format :-)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Ok, just to stir the pot a bit more, here's another format I just came up while playing around. This definately bears some similarities to what Reed proposed, and we might be able to combine some ideas from both... world is a3dl:sector { acl core:accept-all,property:deny-all { /phred /barney } example (text/plain) = "Data goes here." bloxx links to vip://interreality.org/world/bloxx that-guy links to /phred another-example is property:property { block property:data = "hello there" block property:datatype = text/plain } an-object is a3dl:object3d.cube { a3dl:position = "1 2 3" a3dl:orientiation = "0 1 0 90" a3dl:material is a3dl:material { a3dl:color = ".3 .5 .7" } } phred is core:identity, misc:avatar { } barney is core:identity, misc:avatar { } And a sample configuration file: # An example server which loads a COD with a 3D world into an open site. vobject configuration { logfile = 3dworld-blocks.log # Set a permissive default access control policy: default-site-policy = core:accept-all,property:accept-all,site:accept-all,log-level-control:accept-all # Enable search: search is vosapp:plugin { vosapp:plugin-path = plugins/.libs/libomniplg_search.so } # Enable remote log control: logcontrol is vosapp:plugin { vosapp:plugin-path = plugins/.libs/libomniplg_logctrl.so } # Load the (trivially simple) 3D world from a COD file. cod is vosapp:plugin { vosapp:plugin-path = plugins/.libs/libomniplg_cod.so file = world/blocks.cod.gz } # The avatar factory creates an avatar object on the server # when a new visitor joins the world. This allows people behind # firewalls/NAT gateways to interact with other users since messages to their # avatar go to the server, not to their own local host (those would # be blocked by the firewall). cod is vosapp:plugin { vosapp:plugin-path = plugins/.libs/libomniplg_avatar_factory.so vobject = /world model = default_avatar.md2 skin = default_avatar.png hardrotation = 0 1 0 90 policy = factory.compound:accept-all starting_pos = -4 1 -4 starting_ori = 0 1 0 25 } # This turns the root 'world' object into a talkative object which # relays talk messages to other avatars in the world. talkative is vosapp:plugin { vosapp:plugin-path = plugins/.libs/libomniplg_talkative.so vobject = /world sendpolicy = talkative:send-only listenpolicy = core:accept-all } } Comments? [ Peter Amstutz ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ] [Lead Programmer][Interreality Project][Virtual Reality for the Internet] [ VOS: Next Generation Internet Communication][ http://interreality.org ] [ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFDXaHtaeHUyhjCHfcRAgHlAJ46KkkJ12lVWkxKZw9H31R8eoMpBgCgm4Fg UYwFih/CU2MmBi5fMqsyWsM= =ucDt -END PGP SIGNATURE- ___ vos-d mailing list vos-d@interreality.org http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d