Wednesday, September 11, 2013

Retinal Fields for Colours?

When I use a centre-surround field to detect blobs, it does not see apples in a tree
I think this is because I've transformed the input to grey-scale
Because of this red and green are pretty much the same intensity and therefore a red apple with a green background exhibits no contrast
But what if fields compared different colours?
Could contrast the primaries:
  Red-green - this would see apple in tree
  Red-Blue - this would see autumn trees against sky
      Red is dirt, fur, fire, flowers
  Green-blue - this would see trees against sky
Blue is good for shadows, water, sky
Also white and black against primaries:
   Black is night and shadow, also fur, rocks
  Grey is rocks, clouds, shadows, tree trunks, elephants
  White is snow, clouds, reflectance, flowers
This way I'd get more blobs, with specialization, to provide expectations. I'll try it.

Saturday, December 15, 2012

Voice Communications Plugin

Nimajin has created the voice communications add-on for Signalsoft railway dispatching simulations. Previously in the simulations with Dispatcher Centre installed, you could communicate with other players on the network, but only by sending text messages. I guarantee you that not many real dispatchers texted each other in the 1900's! Now, with a headset and the Voice Communications Plugin, you can hear and talk to your fellow dispatchers. And your gameplay is not distracted by all that typing. The sound is clear and the networking does not conflict with any VoIP you may have installed.
Get the Nimajin Voice Communications Plugin soon at
Learn more about Signalsoft railway dispatching simulations at

Monday, February 14, 2011

Script Apps In Smartphones Considered Evil

One of the virtues of Linux - that anybody can write their programs any way they like - can become a detriment in the limited resources of the Android environment over the long term.

Consider SL4A (Scripting Layer for Android). It provides a way for developers to write Android apps in scripting languages like Python, JavaScript and JRuby. If the programmer chooses to write their application in Python, then what happens in the phone? The script is interpreted by Python running in SL4A running in Java in Android. All of the dependent libraries have to be loaded. Look at all that RAM being used! The script gets interpreted, converted to Java API and run on the native OS. That's 3 layers over top of the native OS. Look how slow that executes! If, over time, the user downloads several apps, all written in scripting languages, and runs them, there may be interpreters for Python and Lua and Perl all loaded - a huge demand for RAM and execution time. Will the thing thrash memory? Yeah.

The phone makers will compensate for this with more RAM and faster CPU's. That will mean more energy consumption, less battery life or bigger batteries, more weight and more heat.

From the usability perspective, to support scripted apps, the users have the extra complication of having to download the software dependencies. Because the supporting libraries and interpreters have to be installed, the storage fills up.

For the sake of the user and the ecology, write your apps as close to the metal as you can!

(I won't say browser apps are as bad, because the browser is already in the device)

Wednesday, November 10, 2010

Smartphone traffic on wireless networks will increase 700 percent over the next five years

My title was extracted from this article at VON that points out just how pervasive wireless device networking is becoming and how hard it is for the wireless carriers to provide the service. I am really not surprised. How could you not like having access to all of the Net wherever you are? An article in InformationWeek stated that car sales staff were not happy with WiFi iPads because they couldn't access the dealer database while they out on a test drive with a customer. I guess once you start using a smartphone, how could you stop? It's just natural. You can get TV and movies on your phone or pad from NetFlix for $8 per month! That'll congest the networks more! Still, I don't want to pay Bell $100 per month for 3GB of data. Why so much, when my landline Net costs $30 unlimited? Don't worry, the carriers are struggling through technology changes, but they'll find a way, and even reduce prices - because they can see the huge market.

Monday, September 28, 2009

On Color, Materials and Lighting

First I should say what everyone says - yeah it's been a while. One excuse is I always think it'll take me a long time to write anything here so I put it off. That's because I want to write well, so I spend a lot of time expanding explanations. Maybe I can put more stuff in this blog if I just write my fast way - which is usually point lists.

Reading 'OpenGL SuperBible' by Richard Wright has given me something to say. I'm at the chapter on Color, Materials and Lighting. I think specularity should be a property of the material, not a lighting property. Every surface should have a reflectance specification. Then the amount of normal light that bounces off surface would be calculated.

Thus one would specify 'dull', 'matte', 'bumpy', 'shiny', 'glass' for surface (numerically). This could be specified per-vertex, like colours, and get gradiented like colours are. Or reflectance surface could be like a texture, but each pixel is a reflectance value 0.0-1.0. This would just specify the proportion of light that is reflected - at incidental angle. Or each point of the reflectance surface could be a vector showing which way that point points, so the renderer could calculate where the light reflects to.

You wouldn't need a specular light, or even a diffuse light. The rendering engine could calculate the effects of light bouncing off a shiny surface onto other surfaces for diffuse light. It will take more CPU, but provide more realism.

Because really what you want is to say there's a huge sun millions of miles away, but only its rays provide the primary luminance, everything else is reflected.

Also you want to add diffusion property for volumes, to define what happens to light passing through gas or water or glass. This is internal reflectance.

By the way, I have updated the projects list on the Nimajin web site.

So, it took 10 minutes to get the lighting points up, then another 20 for the picture, introduction, advertising and editing (and another 10 to fix fonts and spacing!).

Monday, April 6, 2009

TimetablEd Now Does Orders And Consists

The Post T railroad simulator timetable editor is gaining new capabilities rapidly! The main panel has been reorganized to show movement orders. This was made possible by compacting the operating days into a new selector that shows the days by their initial letter, in the same way shown by the Stops chart.

The Stops chart can show you trains running on only the same days as the train you're working on, or trains running on any days you select. In the Stops chart you can change the track a train stops on by dragging its bar up and down, or you can change the stop times by dragging left or right. You can change these in the Stops list as well, and there you can also add new stops and delete them.

The train's movement orders are shown in text on the train panel, and can be changed in the Edit Movement Orders window. This windows shows all of the movement orders in the system on the left and the details of the selected order on the right. What's shown on the right depends on the type of order. Shown here is an uncouple order with the convenient graphical decouple point selector just like in the simulator.

I found it easy to get lost in the maze of movement orders, so I added the 'Find' buttons. When you click one of these the editor shows you the order that produced or consumes the item you're looking for, so you can easily follow the trails of the parts of your train.

The train consist editor has been added. You can edit templates that may be used to create many trains that are the same, or create custom consists for unique trains. At the top is shown the consist of the train. These are represented as a list of vehicles in the same way as the uncouple order, but here extra information is included. The bottom line of each vehicle shows the coupler type at each end so its easy to match couplers. In the centre are shown letters for Traction, Electric (or Steam) and Passenger. An L in the top right corners tells you that the vehicle is loaded. You build trains by selecting a vehicle from the vertical list and adding to the consist. For any vehicle selected in the consist or the vehicles list, the editor shows all of its characteristics.

So the editor is nearing completion! Still to do is the timetable printing. And yes, there will be an easy method of scheduling regular trains. My goal is to make the most convenient railway schedule editor. I will consider any suggestions.

Wednesday, March 4, 2009



In co-operation with / Signalsoft Rail Consultancy Ltd. / Richard Plokhaar, railroad consultant and railway simulation developer, I am developing a new railway schedule editor. The editor makes it easy to set up the trains that will run through the new Signalsoft Post T series of railroad simulators.

While playing the simulator you are the dispatcher who must control the signalling and switching to allow the trains to stop and pass through your area of responsibility on schedule - the challenge is you are using 1950's era technology for communications and control! The simulation platform accurately reproduces train physics and events that effect their travel over your rails. It is useful as a simulation for railroad enthusiasts or as a complete simulation platform for modeling and analyzing real-world railroad traffic.

The timetable editor features:

  • Entry locations & times, exit location
  • Station stop locations & times
  • Arrival, departure & pass-through events
  • Textual & graphical representation & editing for easy conflict resolution
  • Special orders editing (train renumbering, direction switching, coupling & uncoupling of complete consists)
  • Train consist editing: locomotive & car selection
  • Special train & activity designation
  • Timetable printing

There will be a series of simulators, modeling various real-world railway centers. A simulator demo is available now at

More information about the Post T series is available at

The editor and the first full simulation are in final beta testing stage and will be available spring 2009