Thursday, December 25, 2008

the mathematical implications

In my emerging cosmology, energy is the fourth dimension, not time.

Arkowitz

time in virtual worlds

Godel's extension of Einstein's work shows us that time does not really exist. It is imaginary. There is no time - only space and energy.

Just as the past is not an additional "dimension" into which we could ever travel, because the past exists only in our heads and the heads of many other organisms as well; the future is imaginary too. There is only the distribution of energy through space right now.

This only is the only of science, logic, and some aspects of the "creative" art of philosophy. Time surely exists because we bring it into being; we the participants in shared sensory experiences; communication.

This is the role of virtual worlds as well.

I hereby redefine a virtual world as a shared space-energy, no longer a shared spacetime. The time part will emerge as a direct result of the messages sent to the bubble server; I used to think croquet's teatime did this but then I read something that made me think it doesn't; rather, it enforces an arbitrary definition of time; a synchronized clock. We will not synchronize a clock; we will make time a function of messages arriving. Messages are packets of energy in space, and they appear to move, to us.

Arkowitz/Ben


ps - Beth Coleman's analogy of a chess game applies quite well to virtual worlds and will be the subject of my next post hopefully

Monday, December 22, 2008

new focus on biotech

Green Phosphor has joined a small business incubator, run by FAMU and the SBA. This has allowed us to move into fantastic office space in Innovation Park. When I look out my window I see two buildings: the National High Magnetic Field Laboratory and the Northwest Regional Data Center.

I'm very close to finalizing Green Phosphor's business plan. We're focusing on the biotech industry, and will be using our patent-pending 3D user interface technology to create an appliance for model based drug development. I can't wait to see genes, codons, hormones, proteins, and their interactions - all in 3D within the virtual world. Here's a video we just made, introducing the technology.

Ed has been working very hard on the first public beta of our Glasshouse gateway. It's a Java application which can be launched from our website and used to connect to your own databases, allowing you and other users to see the data you publish in 3D in our public Sun Wonderland sandbox, Second Life, or your own Wonderland instance! We'll have it live within a couple weeks!

I'm very excited about the new year!

currently reading: Mona Lisa Overdrive by William Gibson

Cheers,
Ben

Monday, November 17, 2008

unification

As things move forward through time, they lose energy. This entropy is an increase in complexity. Thought processes suffer from an increase in complexity as well; take as a simple example the counting of the whole numbers starting from 1. Every prime encountered along the way is a major increase in complexity.

Life is the process of architecting a solution to the multidimensional prediction problem of how to continue life.

Life uses information flow to optimize its fight against entropy.

Information flow may be accomplished using resonance of spinning fields with one another. Resonance may be the way to solve the uncertainty problem; a system may be measured but not interfered with if we have another system achieve resonance with it and then measure the second system.

Imagine a unification of Einstein, Godel, Heisenberg, and ... Tesla.

Arkowitz

Friday, November 14, 2008

Heisenberg and Language

I've been reading Werner Heisenberg's book Physics and Philosophy: the Revolution in Modern Science. He talks about how language is necessary for science. Until now science has used two languages: natural language and mathematics.

Now we have a new tool: programming languages. A programming language combines the precision of mathematics with the expressiveness of natural language and can be used to create a perceivable manifestation of a model; this allows the communication of concepts and models without need for language at all. This is a virtual world.

One may say that whatever we do with computers will suffer from "finiteness" and predictability not reflective of the real world, and that a computer program may be defined mathematically. I respond that the network introduces chance into the picture. Is it possible to always predict accurately what a ping time will be? I don't think so.

I think we have the ingredients for something significant.

---

I've been thinking about a definition of Architecture which applies to computer science and IT as well as to physical projects such as buildings and bridges. Here's what I've come up with:

Architecture is the creation of a set of rules which, when followed by a group of actors, results in the construction of something persistent.

---

Ever notice that the only metaphors we have for the workings of our minds are the machines we have constructed? Switches and gears...

Arkowitz

Friday, October 31, 2008

Massive Update

I've been working with Tommi Laukkanen on a universal protocol for virtual worlds. It will be the second version of CICP, as well as the next version of Tommi's protocol, SETP... so for now we are calling it SETP/CICPv2. My main contribution so far has been much of the language in the Domain Model. Jon Watte of Forterra has been contributing as well. I'm very excited about the effort. Visit the SETP wiki to see what we are up to... go to the domain model page. I'm going to paste the whole page at the bottom of this blog post, too.

Green Phosphor has a new website designed for us by Derek Au, one of the brightest programmers I know... who has abandoned programming for pottery, specifically brilliant porcelain constructions he has been making in China. I feel very fortunate to have him on board.

Just over a week ago Green Phosphor completed the filing of two patent applications. One covers our gateway between a virtual world and an analytical database; this is the IP that we are building our for-profit business around. The other app covers CICP, and we will always give that one away for free. Trolls beware, this patent app will hopefully end up protecting some very valuable open source technology: a flexible, efficient, cross-platform protocol for sharing interactive content within bubbles of simulated spacetime.

---

Domain Model

This page is a place to define the key entities of distributed virtual environments and SETP/CICPv2 protocol.

Theoretical Entities
-----------------------

Shared Spacetime

The overall goal of our protocol is to enable multiple participants to experience a shared, simulated, spacetime. Mathematically a spacetime is a four-dimensional continuum. We constrain this continuum such that the time dimension only moves forward and is constantly incremented by some sort of clock synchronization among the participants. We also may constrain this continuum such that there are a finite number of positions between two given points rather than an infinite number. This means it is not necessarily a continuum in the formal sense of the word.

Multiple shared spacetime bubbles may exist, and need not exist within the same coordinate system. A spacetime bubble may exist within a region of another spacetime bubble. A spacetime bubble may also border another spacetime bubble. Spacetime bubbles may also overlap.


Participant

Participants are entities which are able to perceive aspects of the simulation and/or have an effect on aspects of the simulation. Participant types are: humans, daemon processes, artificial intelligence scripts and applications.


Injection

Process where participant adds an object it owns to a spacetime bubble.


Ejection

Process where participant removes an object it owns from a space time bubble.


Object

An object is an atomic unit of content. An object's effect on a spacetime may be comprised of multiple types and occurrences of content, but is treated such that either the entire object exists within a given spacetime, or none of it exists. If a spacetime is assumed to have a boundary, and some object overlaps that boundary, the object can still be expressed in terms of the coordinate system of that spacetime and as such is considered to exist fully within that spacetime.

Injection commands are executed against individual objects. Update and ejection commands may be executed against individual objects or groups of objects.

Every object affecting a given spacetime belongs to a participant in that spacetime. If a program issues an injection command, placing an object into a spacetime, that program is a participant in that spacetime. If the program is a human interface, the human using the human interface is considered a participant.


Interaction

Interaction is an event where one object changes the state of another object. Without interactions it could be thought that all objects have their private spacetime. Participants use their avatar as a proxy when interacting with objects they do not own.


Avatar

An avatar is an object which is used to represent the identity of its owning participant.


State

Object external state can be observed and internal state is not immediately visible. State could
be categorized the same way as interactions. External states which are expressed with the protocol and internal states which are simulated but with entirely different model.


Content

Content is anything which can be perceived in the spacetime. Content only exists as a part of an object. Map can consists of one or more objects. All participation in a shared spacetime involves content. This includes images or textures, three-dimensional shapes, audio, fog, and light; it also includes changes occurring to any of these. Content may be injected into a spacetime, updated within a spacetime, ejected from a spacetime, or perceived within a spacetime. Injection, update, or ejection of content is performed via the protocol, by use of a command; perception of content is indicated via the protocol by receipt of an event. Injection, update, and ejection of content all result in perception events.


Awareness

Objects have awareness bounds. However they are defined geometrically, the awareness bounds indicate a region of space within a spacetime. If this region of space is affected by other objects, via injection, update, or ejection commands, events representing those effects will be sent to the participant responsible for the object. Objects may be defined with an empty awareness bounds, indicating that no events should be received.

Upon issuing an injection command for an object, a participant will receive events which correspond to all objects which were already affecting the spacetime within the awareness bounds of the new object.


Observation

An event where object observes another object inside its awareness bounds.


Migration (Teleporting / SimCrossing )

Process where objects teleport from one bubble to another. Teleporting can be seamless if bubbles overlap.


Visibility

Visibility is an attribute which reflects whether object or state can be observed through the spacetime. If transparent bottle is empty the state is visible as it can be observed with the mechanisms of the spacetime. If the state has to be inquired in an interaction it is not visible.


Appearance

When object is added to the world it appears. Objects and participants need to be aware of these events.


Disappearance

When object is removed from the world it disappears. Objects and participants need to be aware of these events.


Architecture Entities
--------------------------

Bubble (Simulation / Sim)

A volume of space simulated over time.


Cloud of Bubbles (Cluster / Grid)

A group of linked bubbles simulating distributed spacetime located in the same or separate bubble servers.


Bubble Server (World Server / Simulation Server)

A bubble server is a program which handles command and event processing for a spacetime. The bubble server is responsible for determining which events go to which participants, based on the awareness bounds and update coordinates of the objects the participants place into the spacetime. The bubble server may be essentially a messaging hub that is spatially aware only in terms of rough bounds and is not expected to perform physics simulation or collision detection. Bubble server will also contain object daemon (artificial active participant) injecting long lived persistent objects. Other daemon could be a physics daemon.


Human Interface / User Interface (Viewer/Browser/Client)

A human interface is a piece of software which uses the protocol and a user interface to enable a human to participate in a shared spacetime.


Subscription

Participants may inject objects which have a subscription capability. This means that other participants may receive updates involving that object directly from the owning participant. This can be useful to avoid network bottlenecking of a server; it is also useful when object updates take the form of a stream such as video or audio. The world server need not understand or process a particular video stream if the participant generating it streams it directly to all the other participants.

It has been suggested by Jon that subscription mechanisms and peer to peer streams could be defined in a separate protocol. - Tommi

I agree with this as well. All the SETP/CICPv2 protocol needs to do is allow an object to publicize the fact that it has a subscription capability and where to get it. --ark


Collision Detection

There should be a capability for a server module or special participant to handle collision detection for objects and trigger events based on that; it should also be possible for participants to handle their own collision detection.

It has been suggested by Jon that owning participant should always handle collision detection of an object. Another view point is that the bubble provides fundamental laws like collision detection. If several bubbles (sims from different providers) overlap then the bubble which is the primary bubble for an object (first point of injection) executes collision detection for that object. - Tommi

Reply: Collision detection is part of simulation of an object. Whether an object is squishy or hard, collides as a convex hull, sphere, mesh, or something else is part of the definition of the object. What the object does when colliding is part of the simulation (for example, does it bounce, or stick, or explode, or turn on a light, or ...). If you want to support simulating an object on a host other than the host that initially injected the object, then you'd have to also support injection and transfer of behavior, which is a Hard Problem and hasn't actually ever been solved well. Thus, an object is owned by its injector, its simulation is handled by its injector, and the lifetime of the object is constrained by the lifetime of the injector(!) If two injectors want to negotiate transfer of ownership separately from the protocol, and remove/re-inject the object (or perhaps more elegantly, allow transfer of ownership), then that's fine, but not necessarily part of this particular protocol.

I figure that since the bubble server has to be able to figure out the overlapping of awareness bounds and physical bounds of objects in order to do its job, why not enable it to also serve the participants with a basic collision (overlap of physical bounds and physical bounds) detection service. Objects have to somehow define their rough physical bounds to the bubble server anyway for awareness detection... the key is to keep it rough and simple. I am willing to ditch the idea of participants delegating collision detection for their objects to other participants; too complicated. Must eject and re-inject instead. --ark


Interaction Options for an Object

Every object may have interaction options which the owning participant has defined for it. Another participant may choose to activate on of these interaction options, which results in an event being sent to the owning participant; the owning participant is then expected to do something and update the object to reflect what is has done.

A human interface should allow a human to indicate a desire to interact with an object, and then display to the human the list of interaction options for that object. The human should then be able to select one, thereby triggering that event to the object's owner.

Wednesday, October 15, 2008

Understanding Things

People often want fancy looking graphs that change with time. They want movement and activity. They want algorithms which analyze streams of data in real time and make decisions in microseconds.

Meanwhile I find that looking at one static 3d graph of net oil consumption/production for over a year now still doesn't get old. The more I look at it the more I understand about what's been going on in the world over the last 40 years.

Where is the long-term strategic thought? We all know that we have become a culture of sound bites and quick fixes. Now that is biting us in the ass. How are we supposed to "compete" with China when we're only worried about the next election cycle, and when our financial strategies are all based on shuffling risk and betting on never-ending growth, with ever-finer granularity?

Arkowitz

Monday, October 13, 2008

Open Source

We are preparing a reference implementation of a CICP adapter for Second Life; when it is ready we will be releasing that along with the lg3d-wonderland adapter as Open Source.

Arkowitz

Monday, October 6, 2008

Lindquist's Theory

Life is a process which is able to thwart the Uncertainty Principle.

A computer program (logical (mathematical) construct!) as well is a way to adapt and reoptimize a prediction mechanism based on input (sense) over time (process).

The answer to the problem of the observed, the instrument, and the observer... is that the observer is the instrument.

Indeed, God does not play dice with the Universe. God created (is) life.

Friday, September 5, 2008

Friday, July 4, 2008

Improved SL Glasshouse Available

I've made a few improvements to the Second Life version of Glasshouse:

1) Descriptions of graph nodes are now set so that mouseover shows them
2) The purple cube shows the sql that generated the graph
3) Graphs no longer die off on their own

Everyone will need to get a new version of the Glasshouse Assistant object; I've left one (turqoise sphere above the graphs in SciLands dataviz area) for copying by all.

For a slurl to the dataviz area, go to the SLDataViz Wiki.

Arkowitz

Sunday, June 29, 2008

CICP Seed Spec

Here's the spec for the basics of CICP. I'm looking for constructive criticism of this with an eye toward the future... we will be adding it to Sun Wonderland within weeks.

http://greenphosphor.com/CICP_spec.pdf

By the way, this has all been done before, though not as simply and without an easy way to create primitives. Have a look at HLA.

Arkowitz

Friday, June 27, 2008

CICP

I've decided to license Content Injection and Control Protocol free to closed-source virtual world platforms as well. The more available platforms Glasshouse can integrate with the better.

I will have a spec of CICP put together by the end of the week, and will be soliciting feedback and contribution from architects involved with the major open source and closed source virtual worlds. Within one week after that, CICP will be finalized and can be implemented in any virtual world; any platform with CICP then becomes a platform which can host the Glasshouse data exploration environment.

I believe CICP will be a valuable protocol for external apps to integrate with virtual worlds, for viewers to communicate with servers, and ultimately even for the various virtual world platforms to interoperate with one another.

I pledge to continue the patenting process for CICP and to license it free for all to use. Note that I am all about making money... but not with this protocol. I plan to make money with Glasshouse, and Glasshouse and other apps like it need CICP.

Ben

Wednesday, June 25, 2008

pithy saying

Much is going on. I have decided to license my Content Injection and Control Protocol free to every open source virtual world that will implement it; and Green Phosphor will help implement it as well. We need a cross-platform protocol like CICP in order to hook our Glasshouse gateway up to virtual worlds. Other types of products could benefit from CICP as well - process modelling apps, AI's, sim-to-sim gateways, you name it. CICP is primitive now but is the seed for a new way of approaching virtual world architecture.

Ed, our CTO, is just about ready with a new public Wonderland server which will allow us to demo Glasshouse much more easily. The Java webstart capability of Wonderland is killer. Meanwhile I plan to get more involved with realXtend.

And now for the pithy saying. I hope you like it, I came up with it myself and I'm so proud of it.


Beware the east!
For it is the west.


--Arkowitz

Saturday, June 21, 2008

Partnership Business Model

We're in the process of solidifying our business model. It's quite simple:

License Glasshouse, our data exploration gateway integrating virtual worlds and databases, to customers globally via partnerships with professional services companies, industry-specific solution providers, virtual world providers, and business intelligence providers.

Glasshouse is an enabling and integrating technology. Business intelligence projects benefit from being able to expose what they are doing into virtual worlds; virtual worlds projects benefit by being able to present and explore data within the virtual meeting place, in 3d. Professional services companies can build projects around Glasshouse that provide new value to their existing customers.

Green Phosphor LLC is and will remain a very lean company. We will continue to build our core technical team here in Tallahassee, as we add features and capabilities to our gateway and tools software; and we will build a layer around the core development team which is focused on supporting our partners' efforts and channeling feedback and requirements to the development team. That's it. No sales; no professional services in the field.

Ben

Sunday, April 6, 2008

filaments

OK - so we need visual feedback about the manipulative control potential of limbs projecting from avatars.

Using reverse kinetics is supposedly prohibitive as far as calculation, if you are doing it in a "robot arm" simulation kind of way. I have two solutions:

1) Use real AI that hasn't been developed yet ??? to control the limb sections of avatars via neurons receiving sensor from the limbs and sending control to the limb sections.

2) Here's what we can do right now: filaments. Make the line that extends from an avatars hands actually do things. Way less calc, and still shows other avatars a physical connection between an avatar and a thing which can be manipulated. Make color of a filament mean something; display menus along filaments.


Was it Zelazny's Changeling where the guy with the natural magical skills comes home and sees all these crazy filaments of different colors that are an interface to the magic he can access?

Now I am not suggesting we try to model knots... rather all filaments connect to objects at specific control points offered by the objects. We are here working with a 3d "network graph" of nodes (objects and avatars in the metaverse) and filaments (filaments are edges as well as control mechanisms).

Many thanks to Patrick Lee whom I hung out with back during my comp sci days at fsu and who was fascinated by the way magical user interfaces were described and then loaned me the book.

Ben

Wednesday, March 26, 2008

chinatibet

What is enlightenment?

Does it visit one child who can only be found by certain monks?

Does it appear here, there?

Let there be peace.







What is the balance between freedom and peace?
We sometimes die for freedom.

Proud to be a Norte-y-centrale-et-sud American!

Ben

Finding the Egg Pile

Today is one of my days to work from home. I took a break this morning to hunt for eggs with my wife. Yes, to hunt for eggs, right after Easter! There's a reason for the old Easter traditions.

We have two chickens and a rooster. They roost in a loquat tree right in front of our house every night, and in the morning they flutter down and march off around the back of the house into the woods. For a couple weeks now we hadn't been able to figure out where they were laying. So off we went, into the back yard, through my secret door in the fence, and farther back into the woods where it was obvious the chickens had been foraging and scratching a lot. No eggs.

My wife stayed on the inside of the fence, and I went along the outside, through the edge of our neighbors' yard, checking near an area where they used to lay; still no sign of eggs. Having pretty much given up, I kept walking along the fence so I could get to the end, where we have a gate... and there, in a small hollow behind some sort of palm bush, was a cache of twenty eggs.

Now I wouldn't be putting this in my blog if there weren't a moral to the story. The moral is that you often find answers when you stop looking in a particular place and instead browse and explore without preconceived notions of where the answers lie or what they are. Think of the woods where the chickens are laying as your data warehouse.

Ben

Monday, March 24, 2008

data, spin, and getting the truth

Typically, leaders ask their data people to find stats and examples from their operational data with the purpose of supporting particular theories, claims, or existing "perceptions" of the public, the legislature, the board...

Turn this on its head. Ask your data people for insights which emerge by looking for what is interesting and objectively significant. See what is there.

The truth will be revealed. Much better to use your data warehouse to inform future decisions and strategies than to use it retroactively to try to justify past ones.

---

This brings us to an additional characteristic of the New Analyst. When asked by a candidate, CEO, Director, client, or boss to spin up some statistical numbers to support a particular view or perception... the New Analyst will refuse to violate the foundation of their discipline. The New Analyst will pull up the numbers that are there from a large swath of the multidimensional tree (within the metadata) which points to the data which reveals the view or perception the exercise started with to be what it is. To do otherwise would be to act as a "Court Statistician". :)

- Arkowitz

Wednesday, March 12, 2008

The Challenge for IT

Information Technology people need to enable new types of problem solving by mapping real-world problems to contexts within which teams of non-technical people can solve them.

Friday, March 7, 2008

Arkowitz Law #1

Any increase in communication among people ends up being a good thing.

(also known as the anti-babelfish law)

the energy cost of virtual worlds

Arkowitz Law #2:

The cost of operating several acres of virtual space able to support training, project warrooms, collaborative datamining environments, and meeting rooms for people regardless of physical location, for one month, is roughly equivalent to the cost of one round-trip airline ticket from New York to Los Angeles.

Tuesday, March 4, 2008

uploading and normalization

When uploading data into glasshouse, make sure you have created a table which is fully normalized. Each column of the table should be a dimension. Consider some data recording temperatures by day for two cities: Prague and Memphis. You might have recorded it this way:

day,prague temp,memphis temp
Sunday,25,29
Monday,26,30
Tuesday,30,29


What works best for glasshouse, and reflects the fact that Prague and Memphis are both really just values of an implicit dimension (geographical location), is the following arrangement:

day,city,temp
Sunday,Prague,25
Sunday,Memphis,29
Monday,Prague,26
Monday,Memphis,30
Tuesday,Prague,30
Tuesday,Memphis,29


ark

Saturday, February 23, 2008

land use model, etc.

I think charging for land use is the wrong model. Yes land should be valued because of its proximity to other land; but beyond that it is just a virtual thing. Space in virtual worlds is just a mathematical construct and should be free. Content placed within the space should belong to the creators or purchasers of it.

So what is cpu time in a Second Life sim? It's really energy. Paying for it makes sense, but not when tied to a particular piece of virtual land. What's the right model for a virtual world host to make money? Probably paying for your energy use, not your content (which built-on land and customized land really are... just content). A platform which can't shift land (space) simulations around on a pool of servers will have a hard time charging for just the amount of cpu used to simulate your space...

Ben