Tuesday, September 11, 2007

SciVee - a YouTube for science

I learn from ars technica here about SciVee which will

...provide a form of scientific communication that's intermediate between abstracts (which take a few minutes to read) and a full reading of a paper (which can take hours). The primary type of video presentation that SciVee intends to host could be called a "pubcast," in which a researcher provides a short video description of their work that's synchronized to the display of text from the paper.

and also about the process of creating a SciVee presentation

What's the incentive for researchers to put the effort into creating a pubcast? "There's actually a low barrier to entry," Bourne said. "All you need is a webcam and iMovie or Movie Maker." The SciVee site has tutorials for recording and editing video content on both Mac and Windows platforms. Once the resulting video is uploaded, the site's software walks users through synchronizing it with the text of the paper.

I think SciVee will catch on very quickly indeed. There is a large gulf between reading just a paper's abstract and reading the entire paper which SciVee fills well, and because it is video it is (potentially) a very engaging medium with which to attract people's attention. No doubt I will try out SciVee before long, and I will write about my impressions of it here.

Sunday, September 09, 2007

The Spline - a movie

Here is a little doodle that I created whilst waiting for Sunday lunch to cook:


Apologies to Channel 4 for my blatent plagiarism of their animated logo idea.

Saturday, September 08, 2007

Boltzmann brains

In the 18 August 2007 issue of New Scientist there is an article Spooks in space by Mason Inman about so-called Boltzmann brains. Quoting from the introduction to the article

Boltzmann posed the question of whether the universe could have arisen from a thermal fluctuation; his work presaged the idea that a fluctuation could also give rise to a conscious entity that sees the universe. In this regard Boltzmann brains are not necessarily actual brains, but rather are a metaphor for observers of the universe that might appear spontaneously.

Thus a Boltzmann brain is a conscious entity that instantaneously pops into existence as a spontaneous fluctuation of matter into a highly ordered form, rather than gradually coming into existence like us through the slow process of evolution gradually rearranging matter into a highly ordered form. The probability of a whole brain suddenly popping into existence in this way is extremely small, because the internal structure of the Boltzmann brain has to be exactly right so that it works as a brain, so you have to wait a very long time for there to be a significant likelihood of a Boltzmann brain coming into existence. This likelihood problem is very deftly avoided by evolution, because it breaks the overall problem of making a brain into very small steps, each of which is much more likely to occur than the whole big jump from start to finish; of course, evolution doesn't know in advance that this is what is going on.

More generally, you could imagine a whole spectrum of processes ranging from the instantaneous rearrangement of matter at one extreme (e.g. Boltzmann brain) all the way through to the gradual rearrangement of matter at the other extreme (e.g. evolution).

In a sufficiently large and long-lived universe Boltzmann brains will come into existence, because then the extremely small likelihood of one coming into existence at any given place and time is offset by the large number of alternative places and times that are available in the whole universe (i.e. space-time). Our universe looks exactly like the sort of place where these conditions are (or will be in the far future) satisfied, so Boltzmann brains will eventually come into existence here.

The eventual existence of Boltzmann brains worries cosmologists, because the laws of physics that are deduced by a Boltzmann brain (which is a conscious observer) would be different from the laws that are deduced by us. The reason for this difference is that Boltzmann brains would typically come into existence a very long time in our future when the universe is much larger, emptier and colder than now, so the typical observations made by a Boltzmann brain would be very different from the typical observations made by us, so a Boltzmann brain would deduce laws of physics that are very different from ours.

This fact worries cosmologists so much that they would very much like to find a way to "banish" Boltzmann brains from existence, for instance by finding some property of the currently known laws of physics that prevents favourable conditions for Boltmann brains from ever arising.

I am not as worried as cosmologists are about the potential existence of Boltzmann brains who would deduce different laws of physics from us. My reasoning is as follows:

  1. Firstly, we are not special in the grand scheme of things, because we are basically the same type of information processors as Boltzmann brains. Both Boltzmann brains and we are two extreme examples of the outcome of a spectrum of processes that have rearranged matter in the universe. Our brains have come into existence via the gradual process of evolution, which stores its intermediate results in the form of DNA, and then uses this as the starting point for the next step in the rearrangement of matter. Whereas Boltzmann brains pop into existence without going via any of these intermediate steps. There is also a whole spectrum of intermediate cases (e.g. partly DNA and partly random chance) that one could imagine; the only way that DNA can evolve is to live a little way into this intermediate regime where there is a small element of random chance. Our brains are not particularly special in this spectrum of possibilities, other than because evolution using DNA (or something analogous) is the only process that has a significant likelihood of making something as complex as our brains in a universe that is as (relatively) young as ours is. The other possible processes for making brains that lie nearer the Boltzmann brain end of this spectrum will need much longer to have a significant likelihood of happening.
  2. Secondly, the laws of physics that we deduce are (at least partly) environmentally determined, so it doesn't matter too much if observers living in very different universes (or at very different times in the same universe) deduce different laws of physics. We set up our experiments and make observations, then we discover a low-complexity "explanation" of all of these observations and call it the "standard model" (or whatever). The scientific method is driven by whatever experimental observations we make, and we have little choice in this other than the freedom to choose which particular experiments we conduct. We grandly give the name "laws of physics" to our explanation of all of our observations, but the way in which this explanation is constructed leaves a lot of room for doubt about its uniqueness or inevitability. It may yet turn out that the laws of physics are somehow unique/inevitable, but that is far from being obvious right now. It is much safer to keep an open mind, and to assume that the laws of physics are simply what we observe-then-guess them to be, and to be thankful that mathematical beauty and elegance has taken us as far as it has in constraining the precise form of the laws of physics. It may yet turn out that there is a lot more mileage to be had in the mathematical beauty/elegance approach, but we should not assume that this is inevitable.

So we are not special in the grand scheme of things, and the laws of physics that we deduce are (at least partly) environmentally determined. Together, these two points mean that I am not as worried as cosmologists about the potential existence of Boltzmann brains.

Wouldn't it be nice to write a computer simulation of a synthetic universe whose properties gradually changed as the simulation proceeded, in which different types of information processing entity (brains, if you wish) emerged at different times during the simulation, and which interacted with their simulated environment to deduce what they called the "laws of physics" that governed their existence? None of these information processing entities would be "special" in any way (although they might believe themselves to be special!), and the "laws of physics" that they deduced would be environmental.

Enigma 1459

Here is how Mathematica can be used to solve New Scientist Enigma number 1459 in the 8 September 2007 issue.

This is a straightforward digit manipulation problem which can easily and quickly be solved by a brute force search. In this problem there is no point in trying to do any clever programming.

Initialise the counter.
n=1;

Step the counter until the condition on its digits is satisfied.
While[Not[MemberQ[Map[FromDigits, Permutations[IntegerDigits[n]]], 12n/11]], n++]

Display the counter value that satisfies the condition.
n
1683

Thursday, September 06, 2007

West Malvern sunset


This is my favourite photo of sunset as seen from my house high up on the west side of the Malvern Hills. I have never seen so many different types of cloud layer in the same small area of the sky.

Unfortunately, this year's summer weather has been useless so there were no opportunities to take good sunset photos. The photo above is one from my archive which I took on 26 July 2001.

Caleb Clarke's favourite painting


This one is for Caleb Clarke. He painted this remarkable picture, and then later sold it to me. I think he regrets having sold it, so I am posting a photo of it here for him and others to enjoy.

It was difficult to take this photo because I had mounted the painting in a glass-fronted frame, so I took the photo from slightly to one side in order to avoid glare from reflection of the camera flash in the glass, and then after that I had to do a bit of image processing to massage the photo back to the correct rectangular shape.

Enjoy, Caleb!

Wednesday, September 05, 2007

The Spline - a musical theme


To play this music click here.

Singularity Summit 2007

The Singularity Summit 2007 is about to start. I wish I could be there, but I will have to content myself with being an observer on the sidelines.

They say in the introduction on the website:

The Singularity Institute for Artificial Intelligence presents the Singularity Summit 2007, a major two-day event bringing together 18 leading thinkers to address and debate a historical moment in humanity's history – a window of opportunity to shape how we develop advanced artificial intelligence.

The introduction goes on to explain what "The Singularity" is:

For over a hundred thousand years, the evolved human brain has held a privileged place in the expanse of cognition. Within this century, science may move humanity beyond its boundary of intelligence. This possibility, the singularity, may be a critical event in history, and deserves thoughtful consideration.

That sounds like hype, but it is not.

Artificial intelligence is a very active area of academic research, and useful software continuously spins-off from this research. All such software applications are very specific in their scope, but their very specificity means that each such application can excel in its own chosen area. Currently, there is no general-purpose artificial intelligence software that can, like a human can, excel at a wide range of activities. The idea of The Singularity is that sometime during the 21st century we will have progressed artificial intelligence software (and hardware) technology to the point where human-level performance (and beyond) will not only become possible but will be highly likely.

Each generation of artificial intelligence will assist in the development of the next generation (this is what happens even now), and this development process will accelerate as the need for external human assistance in the design process becomes less with each advancing generation of AI, until AI can do the development all by itself. Once AI can develop its own next generation without human assistance the pace of progress can become very rapid indeed, and if external resources such as materials and energy were unlimited (which they are not, of course!) then the pace of progress would become so large that it would seem to be infinite (although it is not, of course!).

Hence the use of the phrase "The Singularity", because it marks a fairly sharp transition between the human intelligence that dominates now and the advanced artificial intelligence that will exist (I hesitate to say "dominate"!) in the future. The AI technology that emerges from The Singularity will be thinking thoughts that we will not be able to accommodate within our limited-ability biological brains, so making predictions about the post-singularity era is fraught with difficulties. There is a more detailed discussion of the term "The Singularity" given here.

What sort of things would have to happen in order to make The Singularity (or a smoothed-out version thereof) possible?

  1. We would use an advanced form of nanotechnology to evolve & grow massively parallel fine-grain computer architectures, rather than use the current approach where we design & build every small detail of the computer architecture ourselves. This type of evolution would use an artificial form of DNA to record the long-term state of the evolutionary process, and this type of growth would make use of molecular self-organisation to assemble the computer. This is essentially a fine-grain form of artificial life.
  2. We would use external training to teach the computer what its observed behaviour should be, rather than internal programming to dictate to the computer what its internal workings should be. This training process would involve interaction of the AI with its environment via sensors (e.g. inputs such as eyes and ears) and effectors (e.g. outputs such as touch and speech), and one possible training environment might be Second Life (or something similar).
  3. We would largely remove the artificial distinction that exists between software and hardware, so that each particular behaviour of electrons/molecules/etc in the computer has a unified existence rather than being split up as hardware+software. Currently, the use of programmable architectures has some of the spirit of this unified approach. A useful behaviour that is learnt by one generation could be optionally hard-wired into the next generation (i.e. Lamarkism), but it is not clear that this would be easy to do in a fine-grain architecture that arises through evolution & growth.

An advantage of using our own technology (rather than the outcome of biological evolution) to implement an artificial intelligence is that we can optionally hard-wire some of its behaviour. This could be achieved by "steering" (e.g. selective breeding) the process of evolution & growth that gives rise to the computer architecture in the first place, which could be used to influence the behaviour of the AI in many ways. This offers the possibility of using our human influence to create "nice" advanced AI, but unfortunately the same technique could also be used to create "nasty" advanced AI.

One thing that always comes up in conversation about this sort of advanced artificial intelligence is "do we need it?", or "do we want it?", and so forth. I'll cut straight to the bottom line. The applications of this type of technology are so wide-ranging, the potential for enhancing the quality of our lives is so great, the potential for defending ourselves against an aggressor who might wish to deploy this technology against our better interests is automatically inbuilt (yes, the "arms race" argument!), and so on, that I see no way of suppressing this technology. We have to learn to live with it. If this sort of advanced artificial intelligence is technically possible (and there is no obvious reason why it is not) then it will eventually come into existence no matter how much we try to stall the process.

So I will be watching what happens at the Singularity Summit 2007 with great interest, and I think you should too.

Update: There is now a report and discussion on the presentations at the Singularity Summit at Reason magazine here entitled "Will Super Smart Artificial Intelligences Keep Humans Around As Pets?". I could find only one mention of "nanotechnology", and then only in the context of optimising resource usage (i.e. making things smaller to get more computing done). There was no mention of the clever use nanotechnology, such as using synthetic DNA to evolve & grow massively parallel fine-grain computer architectures, as I discussed above. I find this omission very odd indeed.

Update: Here are links to some live-blogging on the Singularity Summit 2007 to be found on David Orban's blog, which I heard about here on Tommaso Dorigo's blog:

Singularity on the front page (of The San Francisco Chronicle)
Liveblogging the Singularity Summit 2007?
Liveblogging the Singularity Summit 2007 - Day One - morning
Liveblogging the Singularity Summit 2007 - Day One - afternoon
Liveblogging the Singularity Summit 2007 - Day Two - morning
Liveblogging the Singularity Summit 2007 - Day Two - afternoon

Well, I said "So I will be watching what happens at the Singularity Summit 2007 with great interest, and I think you should too.". If what I read in the above live-blogs is even a vaguely accurate report of the sort of discussion that went on at the Singularity Summit, then I am very disappointed by the airing of so many apparently superficial opinions there. Maybe the purpose of the event was to strut their stuff before the adoring eyes of the press, and the meat of the arguments was hidden away behind the scenes. What a pity.

Update: The presentations given at The Singularity Summit 2007 are now online at http://www.singinst.org/media/singularitysummit2007.

Second Life grid

Linden Lab has announced (see here) the launch of the Second Life Grid. This is an exciting development that moves the popular Second Life virtual world towards being

a resource for businesses, organizations and educators for creating a successful virtual presence on the Second Life Grid platform

Linden Lab also says

the Second Life Grid will enable these organizations to understand and create meaningful 3D immersive experiences ... The platform, tools and programs available on SecondLifeGrid.net will provide the foundation needed to create a successful virtual world experience.

From the users' point of view the Second Life Grid offers all the advantages of virtual worlds in general, with none of the disadvantages of the somewhat anarchistic ongoings in Second Life itself. This is a very exciting development because finally we have the promise of a programmable computing environment which we actually inhabit, rather than being limited to using software that we interact with whilst remaining firmly outside of it (as it were).

Ultimately, environments such as this will be so realistic that it will be easy to forget where the real you is, and then the meaning of "real you" becomes rather ambiguous. Have a look at Counterfeit World (a.k.a. Simulacron-3) which is a book-length essay on this problem; I read this when I was a teenager and I was hooked from that point onwards.

One of my interests in programmable virtual worlds such as this is that I can use them to create simulations that mimic what goes on inside my head. I am a highly visual thinker so I understand a concept by expressing it visually as a 3-dimensional simulation in my mind's eye. If I can formulate a concept visually then I can make fluid use of it (think "bird's eye view"), and if I can't then I have to use it in a plodding one-step-at-a-time sort of way (think "worm's eye view").

Prior to the advent of virtual world technology my visualisations have spilt over into the real world in the form of diagrams that I draw to illustrate selected freeze frames of the visualisation, but to other people these diagrams can appear out of context so their full meaning is elusive. However, the promise of virtual world technology is that I can now recreate a more faithful representation of what goes on inside my head when I am visualising.

It is hard work to create a rich virtual world using the current primitive programming tools in Second Life, i.e. the Second Life scripting language. I find that currently the best approach is to do as much as possible of the programming work outside Second Life (using Mathematica, in my case), and to then upload the results to Second Life. Even when I use the best programming tools that are available to me, the overall process of generating virtual world simulations is hard work, but at least it is now feasible whereas before the existence of Second Life it was impossible.

It will be interesting to see how virtual world programming tools develop over the next few years. In the meantime, to be as productive as possible using virtual world technology, it is best to tailor your ambitions to the sorts of things that are relatively easy to do using current programming tools, which means that you have to experiment continuously with the tools to see what they can do for you. For me that means building up my "flying time" in Second Life, and concentrating on doing work there rather than mucking about ... yes, there are distractions!

Tuesday, September 04, 2007

Enigma 1458

Here is how Mathematica can be used to solve New Scientist Enigma number 1458 in the 1 September 2007 issue.

Define the digits used in the 7-digit number.
u = {n6, n5, n4, n3, n2, n1, n0};

Define the reordered digits used in the 6-digit number.
v = {n0, n1, n2, n3, n5, n4};

Define the 7-digit number.
a = FromDigits[u] // Expand
n0 + 10 n1 + 100 n2 + 1000 n3 + 10000 n4 + 100000 n5 + 1000000 n6

Define the 6-digit number.
b = FromDigits[v] // Expand
100000 n0 + 10000 n1 + 1000 n2 + 100 n3 + n4 + 10 n5

Define some inequality constraints on the digits.
c = Apply[And, Map[0 <= # <= 9 &, u]]
0 <= n0 <= 9 && 0 <= n1 <= 9 && 0 <= n2 <= 9 && 0 <= n3 <= 9 && 0 <= n4 <= 9 && 0 <= n5 <= 9 && 0 <= n6 <= 9

Find solutions for the digits in the domain of integers. Searching for 3 solutions and finding only 2 demonstrates that there are only 2 solutions, one of which is the trivial solution with all digits zero.
s = FindInstance[a == 3 b && c, u, Integers, 3]
{{n6->0, n5->0, n4->0, n3->0, n2->0, n1->0, n0->0}, {n6->2, n5->9, n4->3, n3->9, n2->9, n1->7, n0->9}}

Verify the 2 solutions.
a == 3 b /. s
{True, True}

Sunday, September 02, 2007

Computer assisted sculpture

I am going to show you a way of creating sculptures using Mathematica. For the time being, I will show you just one finished example that I prepared earlier, but I will return to this theme in the future to show more generally how you can do computer-assisted sculpture, and lots more besides.

Here is the finished object (i.e. the letter "X") displayed using Mathematica's tasteful 3D rendering:


The basic trick to creating this sort of sculpture is to start with a sheet of elastic "paper", and to then stretch and fold it to the required shape. The allowed moves are basically the same as in origami, except for the fact that the "paper" used here is elastic. Also, in the example shown here the sheet starts off curled round into a cylinder.

The simplest way to see how the cylinder is deformed into the final letter "X" is to see a video of the whole process:


The various steps shown in the above video are:
  1. Start with a cylinder.

  2. Pinch the top and bottom of the cylinder to bring the front and back sheets of its surface together. The aim of this is to create two separate tubes that will eventually become the left and right halves of the "X". At this point in the video there is an artefact where the front and back sheets of the surface pass through each other; this is a side effect of the interpolation method that I used to create intermediate frames in the video.

  3. Fill out the waist of the above surface to compensate for the fact that the pinching operation (2) has made the front and back sheets of the surface touch all of the way from top to bottom. The aim of this is to recreate a 3D volume contained between the front and back sheets of the surface.

  4. Vertically stretch the left and right tubes of the surface. The aim of this is to begin to make these tubes look a bit more like what they need to be to make an "X".

  5. Bend the top and bottom ends of the left and right right tubes outwards. The aim of this is to make these tubes look even more like what they need to be to make an "X".

  6. Vertically constrict the middle of the surface, and stretch the tubes vertically. The aim of this is to accentuate the left and right tubes of the surface, which makes them look like the required "X".

  7. Sharpen the edges of the surface. The aim of this is to make the final shape of the "X" cleaner and crisper.
Each of the steps above is a simple deformation of the surface, and the sequence of steps is carefully arranged so that the surface gets gradually deformed towards the required shape, i.e. the letter "X". More generally, in addition to the basic deformation operations used above, a different starting shape for the surface could be used (e.g. a plain 2D sheet), or more complex operations could be used such as cutting/gluing the surface to create any sculpture that you want.

In the future I will return to this theme to describe it in more detail. I will also post a link here to a more detailed desciption of the steps, including complete Mathematica code.

Friday, August 31, 2007

Technorati activation

Technorati Profile

Saturday, August 25, 2007

We are open for business again

It has been a long while since I last blogged - luttrellica.blogspot.com was on 25 February 2007 and acenetica.blogspot.com was on 26th January 2007. I have been away on a long "sabbatical" to fight for my right to work and think independently; this fight is ongoing but I hope it will be resolved before too long.

I found that previously running two blogs (i.e. acenetica and luttrellica) in parallel was rather inconvenient because there was no clear separation between their subject matter, so I will now maintain a single blog (with comments) here at www.blogger.com and occasionally link to detailed blogs (without comments) that I maintain in my own separate webspace.

This allows me to post much more detailed and useful material that I have generated using Mathematica, which can then be used by anybody who has previously downloaded the free Mathematica Player.

Usually I will not censor comments, but there are limits to what I will allow commenters to get away with, so I will censor rants, ad hominem attacks, etc. Just use your common sense when you post comments here.