Free, Open-Source Programming Downloads

Looking for my PhotoDemon photo editor? It has a dedicated site here:

All code samples and projects on this site are released under a simplified BSD License, which allows for use in both personal and commercial projects as long as you provide attribution and disclaimer of warranty. (That said, if you use my code in your own project, I’m always grateful for notification and/or bug reports. Emails are easy to write!)

To help visitors navigate the large number of projects on this site, I’ve created the following directory.  I try to update this page as soon as a new project is uploaded, but if you cannot locate something specific, try the search box to the left.

All code on this site is provided free of charge, under a permissive open-source license. Pass along the good will with a small donation to fund server costs and to help me support my family. Even $1.00 helps. Thank you!

October 2015 Update: hosting so many source code downloads has become quite a strain on my server, so I’m currently in the process of moving all my code samples to GitHub. Given the number of source-code downloads on the site, this is a time-consuming process, but the end result will be a much better experience for everyone, including you! Until the new repo is ready, I’ve left the old download links intact, so the site should continue to function normally – but be forewarned that the old .zip file downloads will be switched to GitHub in the coming days.

Full applications



Graphics and Imaging

Color-Depth Conversions


Histogram-Related Image Processing

Basic Image Processing

Advanced Image Processing (Including Filters and FX)

Hardware Support


Why I use Classic VB for my code samples

In case you haven’t noticed, I am a big fan of retro programming (e.g. using outdated programming languages to write modern pieces of software). While there are many good ways to practice retro programming, my favorite tool is Visual Basic 6.0.

…Yes, VB6. You can stop laughing now.

I was first introduced to Visual Basic in the form of VB 4.0, way back in the era of choosing to compile a program as 16-bit or 32-bit. VB5 brought some much-needed improvements – including compiling to native code – and VB6 was largely a refinement of larger changes introduced in VB5. I continue to use VB6 on Windows 7, despite Microsoft dropping support mainstream support in 2005 and extended support in 2008.

When asked why I haven’t switched to a more modern language, the answer is simple – I do plenty of professional programming in other, more “sophisticated” languages (Java, C++, Perl). When I code as a hobby, I like to keep it as far removed from my paying work as possible. I suppose work on classic cars is a good analogy; there’s something nostalgic about VB6, and I like that.

As an added bonus, VB code is practically pseudocode, making it easy to port VB functions to other languages. Even if you aren’t familiar with specific VB semantics, it’s hard to confuse the purpose of code like:

luminance = (222 * red + 707 * green + 71 * blue) \ 1000

In recent years, I’ve tried to add pseudocode descriptions to my most popular projects. If you ever find a project with VB code you can’t make sense of, let me know so I can post a language-agnostic pseudocode version on its project page.

14 thoughts on “Free, Open-Source Programming Downloads”

  1. I am glad to know there are many vb6 fans… i have been using vb since 2.0 or even earlier (was a fan of gwbasic too during the msdos days!)… after some handson with c/c++/java etc, i find vb6 to be quick for small odd jobs and it is quite powerful still…i wish they continued on the same line, instead of complicating things with net etc

  2. Glad to see another VB6 fan. I’ve found your site while searching TWAIN scanning VB6 code. Thank you for your excellent coding examples including your open source project “PhotoDemon”.

    Microsoft thinks that learning VB6 is a waste of time but as a hobbyist with 10+ years of coding experience (7 apps: 4 published, 3 under development), I think one can start using some modern languages more quickly than dot net users. The best example is B4X suite, a combination of 4 different RAD platforms (B4A – Android apps; B4J – desktop java apps for Windows/Mac/Linux; B4i – iOS apps development; B4R – for Arduino boards) and all have syntax similar to VB6.

  3. You are an amazing guy ! May your talents multiply … I love the site, your code & the energy

    I’ve used VB all my life – but this is super

    Best of luck and “keep the flame burnin’ !”

  4. Hi fellow.
    I have been using VB since 1993, version 3.0 at the time. I still use VB6 and I like it.
    Your PhotoDemon is the proof that classic VB is powerful in the hands of a good programmer. I often use PhotoDemon for many of my image processing. Thank you for such a wonderful job and good luck.

  5. Just came across your site again – I used your VB6 graphics tutorials a couple of years back, they were extremely helfpul! I still use and love VB6 – the two biggest attractions for me are the ease of creating something from scratch, and also the “Package & Deployment Wizard”. I’ve tried other installer managers (e.g. Nullsoft) but the P&DW is so easy to use. Long live VB6 ;-)

  6. Just found your site while figuring out how to do edge detection, preferably in VB6 – I ended up slurping up all your VB6 graphics tutorials! I’ve been programming professionally since 1980, and used VB since VB3 (earlier, actually – VB-DOS). In fact, I had a large application in VB3 that was actively sold, maintained, and updated through 2015 – the demise of Win-XP finally killed it.

    So I needed to re-write it, from the ground up. I looked at various other languages and platforms, especially Python, and the various .Net languages (VB and C#). Against all popular wisdom, I went with VB6 – partially because of the speed of development, given my familiarity with the language, but also to avoid the enormous .Net size, complexity, and overhead. (Note that I’m a competent Python, C, and assembly programmer, and was not intimidated by the prospect of learning new tool-chains.)

    Now, two years and over 300 kLOC later, I have an application that just screams on modern computers, is robust and reliable, and that I continue to enhance on Win-10. This is small market (high-dollar) industrial control software; the previous VB3 version had nearly a thousand installations worldwide, and the new VB6 version is up to nearly 100, with very high customer satisfaction.

    Thanks for helping to keep the VB6 flame burning, and especially for contributing so much useful knowledge to the world in such a very clear and helpful manner!!!

Leave a Reply to Mark Cancel reply