Page 1 of 1

O'Neill Colony now has mirrors that open and close...

Posted: 17.11.2006, 16:03
by Chuft-Captain
Each mirror opens up to a 45 degree angle over a period of 9 hours, then closes again in a further 9 hours, then spends 6 hours completely closed. This gives 18 hours of light followed by 6 hours of darkness.
Each of the mirror cycles is offset by 8 hours giving a different timezone in each of the 3 valleys.

The video is running at 10,000x (~ 9 secs = 24 hours)

Click on the picture to visit my videos page where you can view or download this video (and others):
Image

Posted: 18.11.2006, 14:09
by Chuft-Captain
I was wondering if people on MAC or UNIX/LINUX platforms are able to play this video sucessfully.
It's encoded in windows .WMV format and I'm not sure if this codec will work on those platforms.

Would anyone who's had problems playing this (or any of my other videos for that matter) please report the problems and your OS platform here.
I'm trying to settle on a format that will exclude as few people as possible, so feedback will be useful.

Thanks

Posted: 18.11.2006, 16:07
by Dollan
Oh, that is absolutely awesome. Surely this will be ready to download soon! I'm salivating here!

...John...

Posted: 18.11.2006, 16:14
by Toti
Yes, it works great in Linux. How did you make the "door" animation?

re

Posted: 18.11.2006, 22:42
by John Van Vliet
most linux users ,like me , are probley using mplayer and mencoder
this will play almost any video . Even ones that are drm'd, but don't tell any one --its a secret in the USA only.

Posted: 19.11.2006, 15:08
by Le Chacal
Nice, but...

Aren't mirrors supposed to open and close simultaneously ? because in that video, I think you are destabilizing the station.

I may be wrong, but isn't the coriolis force enough to destroy the mirrors ?

Posted: 20.11.2006, 10:15
by Chuft-Captain
Thanks for the feedback folks.

Dollan wrote:Oh, that is absolutely awesome. Surely this will be ready to download soon! I'm salivating here!

...John...

JD,

This is still a 1.4.1 project and hence (as I've said in the past) it suffers from some serious depth-sorting problems -- some minor examples will be apparent in the video to the observant viewer.
There's still a chance that these won't be solved in 1.5 as Chris's fixes (AFAIK) will only solve the non-transparent cases.
(I still haven't tested with 1.5, so the jury is still out on this, but due to the large areas of transparency in my models I almost expect a "guilty" verdict when I finally do)

I'm sorry, but in the meantime you might have to get a napkin to take care of that drooling. :wink:

Posted: 20.11.2006, 11:05
by Chuft-Captain
Toti wrote:Yes, it works great in Linux. How did you make the "door" animation?

It's actually 1440 versions of each mirror per day (1 per minute), each of which is adjusted for the appropriate orientation at that time.
It's rather a primitive technique and has the downside that it's not repeatable, so it requires ~ 1.4MB of SSC statements for each 24 hours of animation.
I challenged myself to prove this was possible, but realistically I don't think that it will be practical to include moving mirrors in the model until there is some way of making the sequence permanently repeatable.
(I actually started a thread on the subject of periodic motion a while ago in order to address some of these issues: http://celestiaproject.net/forum/viewtopic.php?t=10144 )

ie. A far better solution than this crude animation, would be to define the parameters of the motion via some form of SSC definition and then for the actual calculation of mirror orientation to be included with all the other calculations Celestia performs between rendering frames. This would give the impression of continuous motion rather than a crude animation.

I think that Chris is quite keen to do something in terms of periodic motion in the future (although I think he's only been considering XYZ's), but 1.5 is his priority at the moment anyway.

Posted: 20.11.2006, 11:41
by Chuft-Captain
Le Chacal wrote:Nice, but...
Aren't mirrors supposed to open and close simultaneously ? because in that video, I think you are destabilizing the station.
I anticipate these mirrors would be made from extremely light, rigid, and strong materials, perhaps with an overall mass per unit area less than that of corrugated cardboard, (the reflective surface itself may be no thicker than aluminium foil), so IMO the mass of the mirrors would be so small compared with the overall mass of the habitat that this would not be an issue. The mass of the population moving within the habitat would be likely to have a far greater affect than the mirrors.
Let's make some assumptions:

Code: Select all

Mirrors @ 1kg per sq.m --> 1,000,000 kg/sq.km
20km x 4km x 1x10e6 kg = 8.0 x 10e7 kg per mirror

Inhabitants @ 100kg average -->
2,000,000 population x 100kg = 2 x 10e8 kgs

Rough guesstimate of overall mass of a single cylinder ~ 6 x 10e12 kgs

So, even the mass of the entire population represents less than 1/30,000th of the habitat mass, and the mirrors are even less. (Each mirror is ~ 1/75,000th the mass of the cylinder.)

Of more concern IMO, is just what mechanism is used to make 20km x 4km of mirrors open and close. This is something that was glossed over to a certain extent in G.K. O'Neill's book. I assume he anticipated some form of spring-loaded hinge combined with cabling along the length of the mirror. My version assumes some more advanced technologies. (You need to think in terms of 2050's technology rather than 1970's)

Le Chacal wrote:I may be wrong, but isn't the coriolis force enough to destroy the mirrors ?

I hope you are wrong! :wink:
At their full extent, the centripetal force at the mirror tips is 5 gravities. This is of far greater magnitude than any coriolis force.

Posted: 20.11.2006, 12:35
by t00fri
Chuft-Captain wrote:
Toti wrote:Yes, it works great in Linux. How did you make the "door" animation?
It's actually 1440 versions of each mirror per day (1 per minute), each of which is adjusted for the appropriate orientation at that time.
It's rather a primitive technique and has the downside that it's not repeatable, so it requires ~ 1.4MB of SSC statements for each 24 hours of animation.
...


My god...another MONSTER ;-)


PS: Did you at least generate those 1.4MB of SSC lines with a 5 line PERL script ;-) ? Such a script would also trivially produce scripts for any dates...

Posted: 20.11.2006, 14:22
by Chuft-Captain
t00fri wrote:My god...another MONSTER ;-)
Imagine if those mirrors were whiteboards. Then we'd really be in trouble! :wink:

t00fri wrote:PS: Did you at least generate those 1.4MB of SSC lines with a 5 line PERL script ;-) ? Such a script would also trivially produce scripts for any dates...

Actually no -- as I don't know PERL.
I did however have the assistance of a certain Mr. Excel, and "he" is also quite capable of trivially producing a script for any specified start-datetime.

The issue (even with PERL), is that once the script is generated, it must be hardcoded to a specific time before it can be loaded into Celestia. It is currently not possible to repeat the sequence within Celestia without having to generate a whole new sequence of "absolute" datetimes, which must also be loaded at startup....regardless of whether the generation tool is PERL or EXCEL, don't you agree?

The problem as I see it is that Celestia currently only deals with absolute datetimes in SSC's, XYZ's, ....etc

If the Celestia runtime implemented Periodic Motion, then, IMO this type of animation would be trivial to specify in a SCC. (No more monster SSC's)

eg. I could imagine something like:

Code: Select all

...
Orientation [ repeat ( start=0 end=45 duration=9h;
                       start=45 end=0 duration=9h;
                       start 0 end 0 duration=6h ) x y z ]
...

as an example syntax that might implement the animation of one of my mirrors.

Posted: 20.11.2006, 14:41
by selden
In principle, I would expect that the new rotation and orientation functionality of v1.5 should be able to display any periodic motion.

Posted: 20.11.2006, 15:00
by Chuft-Captain
Thanks Selden,

I was hoping that would be so, however I'm not sure how well it will handle irregular motions, like the reversals and pauses in my example. (I haven't really tried to come to grips with Chris' new syntax's yet, but it does look promising)

Posted: 20.11.2006, 15:18
by selden
CC,

Regular motion should be doable using various epicycles. Depending on what you mean by "pauses", a quaternion file might be needed, which has the same problem of requiring absolute times.

Posted: 20.11.2006, 18:11
by chris
I've deferred implementing periodic orbits and rotations until after Celestia 1.5.0. But there are still *much* better ways to move the mirrors than creating 1440 versions of each one. YOW! :)

A SampledOrientation file is the easiest approach . . . While it doesn't repeat (yet), it is vastly more compact than the multiple instances approach. I think it could be done with four quaternions (16 numbers) for each oscillation of a mirror.

Last night I checked in code to implement for ScriptedRotations. A ScriptedRotation is a small Lua script that can drive the rotation of an object. I'll post an example in the developers forum that could be used to move the mirrors of your O'Neill Colony over any time span.

--Chris

Posted: 21.11.2006, 04:55
by Chuft-Captain
chris wrote:I've deferred implementing periodic orbits and rotations until after Celestia 1.5.0. But there are still *much* better ways to move the mirrors than creating 1440 versions of each one. YOW! :)
I'm sure there are better ways, with the CVS code, but I'm not using it yet. Strictly 1.4.1 at the moment, and this is the only way I could think to do it in that version of the program.

chris wrote:A SampledOrientation file is the easiest approach . . . While it doesn't repeat (yet), it is vastly more compact than the multiple instances approach. I think it could be done with four quaternions (16 numbers) for each oscillation of a mirror.
I hadn't heard of a SampledOrientation file before...is this a new feature in 1.5 also?

chris wrote:Last night I checked in code to implement for ScriptedRotations. A ScriptedRotation is a small Lua script that can drive the rotation of an object. I'll post an example in the developers forum that could be used to move the mirrors of your O'Neill Colony over any time span.
--Chris
Excellent!! Another reason to look forward to the 1.5 release. Thanks for that Chris, I'll keep an eye out for your post. I've been reading your posts about reference frames and once I understand the syntax, I think that will also help to simplify a lot of orientation issues. I doubt that I'll get my head around the new syntax until I've tried a few practical examples with the new code when it's released.

Cheers
CC