Import Soul Wouldn’t it be nice if things just worked

30Aug/100

openTrack V1

I wrote up a small tracker server for a friend on the NCSS challenge forums. Its intended use is for connecting users in simple P2P applications such as chat programs, games ect.

It can be accessed with brief instructions HERE

Also as part of the project i learned how to use GIT so the source of the project can be found on Git-hub HERE for those interested, so if you have any ideas or find any bugs that would be the place to leave them.

I hope somebody finds this useful, and if not i think i may have some uses for it in future projects (such as super multiplayer multilayer networked pong)

18Aug/100

PyRTF

Working on a school project i have reached a point where i need to be able to generate RTF documents with python. A quick google turn up the PyRTF module.

However i started to run into problems when i needed to be able to split sections of the page into columns. More extensive googleing didnt turn up anything, and the best i found that was in rtf documents the command \colsN where n is how many columns needs to be passed in with the section settings.

Searching the source code for cols didnt turn up anything so,  after much frustration caused by having a copy of PyRTF from a previous project in my site-packages directory, the functionality was easily added and my project is once again underway.

For those who need similar functionality in their projects and couldn't be bothered fiddling around with source code

Get PyRTF with my modifications here

[download id="15" format="1"]

Filed under: Python No Comments
28Apr/102

Recycled Zero Cost 3D Scanner

This is another one of the projects I have done for Design and Technology at school. This time it is for a Year 11 minor project where we had to design the majority of the project out of reused materials that would otherwise be thrown away. I was originally going to do some more experimentation with casting aluminium but then I decided on building this 3d scanner.

The project consisted of:

  • Building a turntable to be controlled by the computer that can rotate the object accurately
  • Convert a laser pointer to emit a line onto the object rather than a dot
  • Have some way to take pictures of the position of the laser line on the object
  • Write programs to control the turntable, find and process the laser line in the captured images and display the processed information as a 3d model

Here is a picture of the general setup I ended up using (I didn't get a good photo of the new stepper and gearing I got to rotate the object)

In this image you can see the turntable (black circle), the laser pointer being refracted into a line using the glass rod in the top right, the circuit board used to control the motor, and the board used as a quick way to trigger the camera.

Here are some images from the different stages of the process:

The object to be scanned

The object sits on the turntable and is rotated accurately using a stepper motor. The first stepper I used allowed 98 steps per revolution (the scan you can see below) while the second stepper motor I used had extra gearing and allowed 290 steps per revolution.

The hardest stage in the entire project is the extraction of an exact line from the image. The stages of this are:

  1. Load the raw image
  2. Extract the Red channel out of the RGB image
  3. Find the entire line in this image as a 2 bit image
  4. Decide upon an exact line through the previous blob ignoring noise

Coordinates are calculated for each point using how high in the image each point on the line is, what rotation the table was at in the image and some basic trigonometry to create thousands of data points that are then linked and covered with faces by a blender script to create a model.

The Raw Model

Then I have simply manually tidied up the model removing where the table appears in the scan and smoothing it.

Trimmed and smoothed

Then I have applied a stock wood texture to the model to produce the final result. I think that it has turned out rather well for a first go at creating a 3D scanner especially as it only took a few weeks and cost me nothing.

The finished product

I am happy to answer any questions you might have and last of all if you are still curious here are some of the sheets I handed in with my folio to show how the points were converted after extraction.

[download id="11"]

26Feb/100

Google App Engine Launcher

I have used Google App Engine for a while but have always started the development server though the command line. I knew a GUI came with the mac version of the SDK but was unaware of any windows equivalent until i found this

http://code.google.com/p/google-appengine-wx-launcher/

It is GUI that has been created in python useing the wxWidgets framework and looks and acts very similar to its mac counterpart

For those who don't want to have to bother dealing with SNV or want an exe version i have compiled the SNV version (as of the 26-2-10)  and it is available here

[download id="6"]

I do not claim to have created the program at all, only compiled it for easy use using GUI2Exe, i hope it comes in handy

NOTE: for those interested i have found that newer versions of the SDK already include this

25Jan/108

Youtube – Think Quick V4

I noticed how many views the video of my first program was getting and decided i should put up a video of one of the newer versions of think quick, so here it is

http://www.youtube.com/watch?v=GmtTHkNd_Q0

It shows off more of the programs features for improveing accuracy and its ablility to repetitively enter rounds, answer a certain number of questions and then strike out and repeat.