James N. Evanko
- Projects and Stuff -


(Recommended tools for computing hashes on Windows: 7-Zip, HashTab, Microsoft FCIV)


Sudoku Screenshot


Sudoku.zip (info)

A GUI program implementing classic Sudoku. (C#, .NET)

Game Mode

To use the program as a game, go to File > New > Random to create a new puzzle. You can then select the correct values for each cell by left clicking the value button inside the cell or right clicking a value button to remove it as a possibility. If you make a mistake, you can right click a filled-in cell and click Undo. You can also type CTRL-Z to undo the last step or right click any of the red entries in the history pane on the right to undo that step, even if it's not the last one. To help remove invalid choices automatically, go to Options and check the Auto-Resolve option. Puzzles can be saved and reloaded at any point via the File menu.

Solver Mode

To use the program to solve an existing puzzle, go to File > New > Empty to clear the grid. Make sure Options > Auto-Resolve is checked. Left click the correct value button for each given cell. The program will solve the puzzle as much as it can as you go. For simple puzzles, the program will solve the puzzle when you enter the last given value. For harder puzzles, the program does not yet have all the rules it needs to complete the puzzle. Feel free to pick up where the program left off, either with Auto-Resolve enabled or not.

Video Mono Screenshot


VideoMono.zip (info)


gtk-sharp-2.12.45.msi (info)
Video Mono

A path tracing program to recreate a real world LEGO. (C#, Mono)

Real World

Real world LEGO that this program is trying to recreate:

Rendering Program

The program uses custom bidirectional reflectance distribution functions (BRDFs) and random sampling of the rendering equation to simulate photons on a lens-less camera sensor. Uses a spherical light source to simulate a studio light source and implicit equations for the scene geometry. Program is multi-threaded and uses the number of logical processor cores available on your PC.

https://en.wikipedia.org/wiki/Rendering_equation https://en.wikipedia.org/wiki/Bidirectional_reflectance_distribution_function


More on YouTube

Real World LEGO

Real world LEGO spinning on turntable. Captured with 640x480 machine vision camera.
Random Surface Colors with Real World Shading

Uses implicit geometry to model the real world LEGO. Each surface of the model is assigned a randomly generated color to make it easy to distinguish where one surface begins and another ends. The shading information from the real world video is modulated over the colored model to show the alignment accuracy between the model and the original video. The corners of the rectangular prism are tracked as the video progresses with colored crosses. These are the points that were used to register the model to the real world video.
Depth Map from Red (Near) to Blue (Far)

The distance from the viewpoint to the implicit geometry model is calculated at every pixel in the video frame. The distance is then mapped to a color gradient where red is the near extreme and blue is the far extreme. The corner points used for registration are shown as white crosses similar to the random surface color video.
Depth Map with Rainbow Stripe Pattern

The depth map in the red/blue video has very soft edges. This video uses a rainbow stripe pattern which transitions more rapidly over shorter distances. This helps visualize the detailed changes in depth at surface transitions.

I think it deserves extra points for the trippy psychedelic effect. If you want some electronic music to go with it, see the YouTube video here.
Depth Map with Rainbow Stripe Pattern and Real World Shading

Uses the same rainbow stripe pattern as the previous video but modulates the real world shading on top of the depth map to show the accuracy of the registration. I think if you zoom in, the shading in this video makes the artificial colors look like actual plastic. What do you think?

Copyright © James N. Evanko. All rights reserved.