Many people have used a webcam to do astrophotography before so I decided to give it a try. These are the steps I took and some mediocre results from night one.

Take a Microsoft LifeCam HD-3000.

Prise open the outer case and then unscrew all the nearly microsocopic screws with a jewlers screwdriver until the base circuit board is separated from the rest of the case.

I then used Araldite (2 part epoxy glue) to glue the cable to the back of the circuit board to hold all the fine cables in place. Once that set I used some Blue-Tak to stick the circuit board onto part of a broken star diagonal.

Make sure the CCD detector is as close to the center as possible. The Blue-Tak allows it to be recentered if need be and holds the circuit board well enough in place.

The stripes across the detector in the above was actually a finger print (gives scale to how small this all is) and destroyed the initial daylight tests. Cleaning it is not easy. I found the best result was one of those microfiber cloths that you use to clean eye glasses. Even that left a few unseen spots that are still visible on the movie capture, so try and keep the CCD as clean as possible.

Once the circuit board is attached it is all screwed to the back of the scope (Celestron Nexstar 5 that has seen better days but still has excellent optics and tracking).

Capture movies with AMCap and process with RegiStax.

Seeing was poor to say the least tonight for my first test and bloody cold with a biting wind, but here is a test moon image stacked with RegiStax.

Here is a movie sample of seeing conditions. First part is the moon moving across the field of view. 25x magnification. Second part a quick test with 2x barlow for 50x magnification.

With more time on a more steady night I will have another attempt. It would be interesting to have a try with Saturn and Jupiter using the barlow.


3 Years Of Softologyblog

3rd year anniversary

Today marks the 3rd anniversary of this blog. Over that time I hope it has been interesting for those who happen to check in and read it from time to time. When I started I wasn’t sure what the contents would be, but once you get blogging it all seems to flow.

I do recommend everyone try blogging. Pick whatever topic(s) you have a passion for and blog away. I tend to use mine as a journal of my ongoing progress with Visions Of Chaos with some interesting info for fellow nerds. It is always great when someone takes some info here, extends it and lets me know about it. That is the true shared knowledge power of the Internet at work.


3D Spirographs

Ahhh, Spirograph, that simple set of plastic cogged discs and rings that created a huge amount of spirally patterned goodness (as long as you kept a steady hand and didn’t jump a cog tooth). I still remember how cool they were prior to the home computer age. Here is a 1973 commercial for them.

And here is a commercial from the 80s.

Visions Of Chaos currently supports rendering 2D spirographs, but I have wanted to explore a 3D extension of Spirographs for a long time.

It was surprisingly difficult to find the formulas required to plot the 3D result of spheres rotating within spheres within speheres etc. Finally, thanks to Henry de Valence’s code I was able to add 3D Spirographs to Visions Of Chaos.

OpenProcessing is a goldmine of ideas/formulas/algorithms. Anyone who enjoys computer graphics and programming needs to check it out.

Here are two early sample movies resulting from my initial test code.

Once they showed potential I made sure that Visions Of Chaos supported the true 1080p “real side by side 3d” output and got the following result. This looks amazing on my LG 3D TV with the polarised glasses. They really pop what seems at least a foot out of the screen as they rotate.

If you want to have a play with the new 3D Spirograph mode, download Visions Of Chaos.

Info For Coders

If you are a programmer who is looking to explore the incredible space of 3D Spirographs here is the main code that you will need to plot the curve in 3D space. This is a direct copy and paste from Henry’s processing code.

ax = 0; ay =0; az = 0;
  bx = 0; by =0; bz = 0;
  for(int i = 0; i < num_segments; ++i) {
    bx = ax + r[i]*sin(f[i]*t)*cos(g[i]*t);
    by = ay + r[i]*sin(f[i]*t)*sin(g[i]*t);
    bz = az + r[i]*cos(g[i]*t);
    line(ax, ay, az, bx, by, bz);
    ax = bx; ay = by; az = bz;

num_segments is how many recursive spheres within spheres you use. For the above sample 3D movie most of them used 2 spheres, but any higher number works too and will lead to much more complex and twisted plots.

r[i] are the radius lengths of each sphere or arm segment.

f[i] and g[i] are non zero +/- period values that change the resulting plot shapes. I tested and used values between -45 and +45 for my images and movies to extend the possible resulting shapes. If the values are rational (integer numbers) then the plot will eventually come back to the start point and retrace itself.

t is time that starts at 0 and should be changed 0.01 or so per update for a smooth plot.

the ax to bx etc swapping keeps track on the sphere within sphere.

Once the segment loop is finished bx,by and bz are the next 3D point in space the Spirograph is at.

At this stage you should be plotting nice 3D spirographs. One very helpful tip is how to work out when to stop calculating and plotting new points. As stated above if you use integer values for the periods then the plot will always return to the start position and beging retracing itself again. Being able to pre-calculate how many steps the plot needs is a handy feature to have.

To calculate the ideal value that the time t variable will be when the plot finishes you find the least common multiplier (LCM) of all the period values. eg if you have a spirograph using 3 arms/segments you will need to calculcate the LCM of 6 period values. Chances are your programming language of choice has a LCM(a,b) function that takes two values. For 3 or more values you recursively call the LCM function. ie the LCM of a,b and c is LCM(a,LCM(b,c)). Thanks again to Henry for the LCM tip.


Extending Multi-Scale Turing Patterns.

See this post for the original Multi-Scale Turing Patterns that came before these variations.

This post was inspired by a comment from Jonathan McCabe on one of his pictures here. What happens when you add a fluid simulator on top of Multi-Scale Turing Patterns?

I already had a simple 2D fluid simulation in Visions Of Chaos based on Jos Stam’s paper and accompanying source code so after some hacking I managed to incorporate it into each step of the Multi-Scale Turing Patterns steps.

Here is a sample movie using the standard Multi-Scale Turing Patterns method.

And here is the same initial start and parameters but this time including Stam’s stable fluid code at each step. This gives more whispy, hairy and vein like features. It also seems to break the cyclic repetitve nature the turing method alone can lead to. Maybe I like the change, maybe not.

And finally another sample. This time with slightly more agressive fluid, histogram equalization auto-contrast (as the above sample was a bit too grey and washed out for my liking) and a pseudo 3D effect.

I then tried using Perlin Noise as a displacement map to push the grid around.

This sample movie is only using a Perlin Noise displacement map.

This sample uses Perlin Noise and then Stam’s Fluid.

This sample uses Stam’s Fluid and then Perlin Noise.

All of the above six movies were created with the latest version of Visions Of Chaos.

Jonathan still continues to amaze me and recently showed off his latest works like this stunning image.

Click for a full size view.

I hope he shares some of the secrets behind that one. I would love to have a play around with it and add something similar to Visions Of Chaos.