mailto:kvetter@DELETETHIS.gmail.com I've been programming in tcl/tk since 1993. I have several tcl/tk projects in the public domain which I'm maintaining, some more actively than others. Tcl/tk is my language of choice for throwing together short, fun little graphical programs. I seem to have a ton of these lying around, and I'm slowly digging them out, converting them from whatever prehistoric version of TK they were originally written in, and posting them here. I hope you like them. %| Project | Date | What |% &| TkFibs | 1994-10-10 | a GUI to FIBS--the First Internet Backgammon Server |& &| [tcl-only datefield] | 2002-02-20 | a tcl only clone of iwidgets datefield widget. This is now part of tklib |& &| [sockspy] | | version 2.0 of Tom Poindexter's ethernet sniffer program |& &| klimb | 2001-07-25| a really cool bike route planner |& &| [Dragon Curve] | 2002-05-09 | draws the Dragon Curve fractal |& &| [Octabug] | 2002-06-07 | draws an Octabug which morphs from a octahedron into an open cuboctahedron and back. |& &| [TkTopoMap] | 2002-08-22 | fetches and displays USGS topomaps or aerial images for any location in the US. |& &| [Why manhole covers are round] | 2002-09-22 | fun animation which amplifies one answer to this question. |& &| [3D Maze] | 2003-04-07 | based on [maze generator2], lets you create and interactively solve 3D mazes. |& &| [SpiroGraph] | 2002-09-30 | a program that simulates the kid's drawing game of SpiroGraph. It draws epicycloids and hypocycloids and lets you tweak various parameters. WARNING: it can become addictive drawing the different shapes. |& &| [TkChallenger] | 2002-10-09 | a tcl/tk game that lets you solve the Challenger puzzles that you find in the daily paper. |& &| [TkPente] | 2002-10-15 | a two-player version of the popular Pente game. |& &| [TkOverload] | 2002-10-18 | another two-player logic game. |& &| [Dot to Dots] | 2002-10-21 | a dot-to-dot game that I wrote for my 3-year old. |& &| [Pass by reference] | 2002-09-19 | syntactic sugar to get automatic pass by reference calling convention |& &| [Semaphore Flag Signalling System] | 2002-11-05 | lets you play with semaphore flags |& &| [Maritime Signal Flags] | 2002-11-05 | lets you play with both semaphore flags and with signal flags |& &| [Fractal Mountains] | 2002-11-11 | draws mountain landscapes using fractals |& &| [Møiré Patterns] | 2002-11-14 | another short graphical program, this one lets you play around generating various Moiré patterns |& &| [Mandelbrot] | 2002-11-19 | more fractals, this time the Mandelbrot fractal |& &| [Juggler] | 2002-11-25 | cute little program showing someone juggling up to 20 balls |& &| [TkMapper] | 2003-01-15 | tired of Yahoo maps being only 400x400 in size? This program grabs neighboring Yahoo maps and tiles them on the screen letting you build up a fuller map of an area. |& &| [Bitmap Editor] | 2002-01-16 | a simple program to edit tcl/tk bitmaps |& &| [a triangle puzzle] | 2003-01-26 | graphic visualization of a classic triangle counting puzzle |& &| [TkRose] | 2003-01-30 | draws rosette figures |& &| [Morley's Miracle] | 2003-02-07 | a [whizzlet] visualizing the Morley's Miracle theorem |& &| [Bulging Line Illusion] | 2003-02-07 | an optical illusion |& &| [Hilbert Curve] | 2003-02-10 | a [whizzlet] drawing the Hilbert plane-filling curve |& &| [Buffon's Needle] | 2003-02-18 | a [whizzlet] showing how you can estimate pi (?) by dropping needles |& &| [3 Triangles] | 2003-02-18 | another [whizzlet] about three equilateral triangles |& &| [tkAtaxx] | 2003-02-19 | an implementation of the popular Ataxx arcade game |& &| [Polyhedron Nets] | 2003-03-06 | draws polyhedron nets, 2-D unfolding of a 3-D solid that you can print, cut out and fold to create polyhedron models. |& &| [Cubic Splines] | 2003-03-07 | routine (w/ demo) to generate a cubic spline curve from a set of control points |& &| [Arrow buttons] | 2003-03-12 | buttons with bitmaps of arrows in four directions |& &| [Drawing rounded polygons] | 2003-03-19 | applied the ideas found in [Drawing rounded rectangles] to any polygon. |& &| [Canvas Rotation] | 2003-03-19 | routines to rotates items on a canvas. Works well for polygons and lines but not ovals or text. |& &| [Named Colors] | 2003-03-21 | displays all the colors Tk knows the name for (for those who don't have [xcolors]) |& &| [tkGoldberg] | 2003-03-21 | a really fun Rube Goldberg [whizzlet] |& &| [Regular Polygons 2] | 2003-03-24 | a generalization of [Regular Polygons] to support -start and -extent parameters |& &| [3D Hilbert Curve] | 2003-04-07 | like [Hilbert Curve] but in 3 dimensions |& &| [Playing Card Images] | 2003-04-25 | image data for playing cards |& &| [Scat] | 2003-04-25 | play the card game '''scat''' against the computer |& &| [Falling Marbles] | 2003-04-29 | animation of marbles falling down a peg board |& &| [Rain Storm] | 2003-05-04 | simulates rain drops on a window |& &| [Lissajous Figures] | 2003-05-09 | draws Lissajous figures |& &| [Puzzle Blocks] | 2003-05-12 | move blocks to solve a puzzle |& &| [Video Poker] | 2003-05-28 | lets you play Jack or Better video poker |& &| [Eliminator] | 2003-05-31 | a moving ball puzzle game |& &| [Gem Game] | 2003-06-04 | another puzzle game |& &| [Triangle Madness] | 2003-07-09 | a visualization of some interesting properties of a triangle. |& &| [Square Root] | 2003-07-14 | various ways to calculate a square root |& &| [Hack-O-Matic] | 2003-09-03 | a visual binary editor written as a challenge |& &| [Printing text files under Windows] | 2003-09-10 | |& &| [Variable versus a Global Array] | 2003-09-14 | thoughts on global variables |& &| [TkMines] | 2003-09-24 | updated version of Tk Minesweeper |& &| [Widget Configure] | 2003-09-24 | a debugging tool to interactive configure a widget |& &| [I love foreach] | 2003-09-29 | why the foreach command is beautiful |& &| [Starfield] | 2003-10-06 | another starfield animation |& &| [Collapse] | 2003-10-31 | yet another arcade type game |& &| [Pastel Colors] | 2003-11-06 | picks random pastel colors |& &| [Wiki History Diff] | 2003-11-07 | does diffs on back versions of wiki pages |& &| [Word Jumble] | 2003-11-11 | an anagram game |& &| [Pig Latin] | 2003-11-12 | translates text into pig latin |& &| [SkipList] | 2003-05-15 | a tcllib module that implements skip lists |& &| [SkipList Demo] | 2003-11-21 | a demo on how skip lists work |& &| [Fern Fractal] | 2003-12-01 | draws the Barnsley's Fern fractal |& &| [A Very Simple Weather App] | 2003-12-03 | simple app showing current temperature |& &| [A Simple Fan Animation] | 2004-01-30 | an animation of a rotating fan |& &| [Parsing XML] | 2004-03-01 | yet another xml/html parser, this one in pure tcl |& &| [Parallel Geturl] | 2004-03-06 | how to efficiently download lots of web pages |& &| [Azimuth Plotting] | 2004-03-10 | help in locating benchmarks |& &| [Universal Transverse Mercator] | 2004-04-15 | conversions to and from UTM coordinates |& &| [Print Area Selector] | 2004-03-31 | control to select an area of a canvas to print |& &| [Convolutions] | 2004-05-20 | fun visual affects |& &| [Following Redirects] | 2004-06-18 | a better way of handling http redirects |& &| [Tic Tac Toe] | 2004-09-10 | can you guess what this is? |& &| [Lights Out] | 2004-09-10 | a one-person puzzle |& &| [Rush Hour] | 2004-09-13 | get the red car out of the traffic jam |& &| [Word Search] | 2004-09-16 | find words hidden in a grid of letters |& &| [A simple Font Viewer] | 2004-10-22 | displays all fonts on your system |& &| [Dynix2RSS] | 2004-11-26 | produces an RSS feed for all your checked out library books |& &| [TriPeaks Solitaire] | 2004-11-29 | the TriPeak solitaire game |& &| [Can You Read This?] | 2004-12-18 | Deos letter oredr matter? |& &| [WAV Dump] | 2005-02-28 | Dumps out info about wav audio files |& &| [XML Tree Walking] | 2005-03-21 | Walks an XML dom tree built with [tdom] |& &| [My House] | 2005-06-15 | Can you find your house? |& &| [BMP Dump] | 2005-09-22 | Dups out info about bmp image files |& &| [Hold'Em Solitaire] | 2005-10-26 | A one-person Texas Hold'em diversion |& &| [Simple Tktable] | 2005-10-27 | A simpler replacement of tktable for simple tables |& &| [3d Matrix Inversion] | 2005-11-02 | routine that inverts 3x3 matrices |& &| [Labyrinth] | 2005-11-18 | a version of Junior Labyrinth board game |& &| [Smallest Enclosing Disc] | 2005-11-21 | Another geometric algorithm |& &| [The Classic 15 Puzzle] | 2005-12-07 | guess |& &| [N-Puzzle] | 2005-12-10 | Generalization of the 15-puzzle to any size |& &| [Animated Circles] | 2005-12-13 | fun little visual animation |& &| [Wavy Text] | 2005-12-13 | Animates some arbitrary text |& &| [Mind Reader] | 2005-12-15 | A little program proving the tcl can read minds |& &| [Kandinsky Dance] | 2005-12-24 | An animation of figures based on a painting by Wassily Kandinsky |& &| [Spotlight] | 2006-01-06 | Shines a spotlight on an image |& &| [Magnifying Glass] | 2006-01-06 | Aims a magnifying glass at an image |& &| [Colliding Blocks] | 2006-01-13 | A fun little arcade style game |& &| [Lights On] | 2006-02-09 | A game where you have to connect wires to light every node |& &| [Ring Master] | 2006-02-11 | puzzle with rotating numbers around three rings |& &| [Capturing Multiple Screens] | 2006-02-13 | package to capture screens larger than the display |& &| [Shadow Photo] | 2006-03-01 | displays an image with nice looking shadow border |& &| [Photo Gallery] | 2006-03-16 | shows a gallery of images which you can dynamically resize |& &| [Montana Solitaire] | 2006-04-28 | another solitaire card game |& &| [Black Box] | 2006-05-09 | plays the game '''Black Box''' |& &| [Another Font Chooser Dialog] | 2006-06-23 | my version of a font chooser dialog |& &| [Dithering] | 2006-07-22 | some dithering techniques and examples |& &| [Gradient Spheres] | 2006-08-16 | using gradients to create sphere shapes |& &| [Geneva Drive] | 2006-08-24 | animation of a Geneva Drive mechanism |& &| [Vanishing Child] | 2006-08-28 | A visual conundrum |& &| [Gear Animation] | 2006-08-30 | Animates interlocking gears |& &| [Nice Numbers] | 2006-09-01 | Two similar routines useful with graphs |& &| [Reading BMP image dimensions] | 2006-09-06 | pure tcl routine to read BMP image dimensions |& &| [Chinese Checkers] | 2006-09-06 | a version of the game chinese checkers |& &| [Bulging Square Illusion] | 2006-09-08 | an optical illusion |& &| [Ribbon Graphs] | 2006-09-27 | turning 2D line graphs into sexy 3D graphs |& &| [Pulsing Squares] | 2006-10-04 | an optical illusion |& &| [Benford's Law] | 2006-10-11 | a visualization of the counter-intuitive Benford's Law |& &| [Word Chain] | 2006-10-12 | computes ''cat-cot-cog-dog'' word chains |& &| [Dice] | 2006-10-21 | draws pretty playing dice |& &| [Cubic Function Explorer] | 2006-12-18 | plots the graph of some cubic equations |& &| [Unzip in tcl] | 2007-01-04 | a simple tcl-only version of unzip |& &| [Crazy Eights] | 2005-01-11 | plays the card game '''Crazy Eight's''' |& &| [NOAA Weather Forecast] | 2007-01-23 | displays the weather forecast from NOAA |& &| [Crossword Puzzle Builder] | 2007-02-08 | lets you create grids for crossword puzzles |& &| [Solving Logic Puzzles] | 2007-02-09 | solves one type of logic puzzles |& &| [Cubic equation] | 2003-02-26 | created the page, but I can't claim credit for the code |& &| [A Hypertext Help System] | 2007-06-27 | a nice, tcl only help system |& &| [tclTiger] | 2007-07-08 | interface to the TIGER GIS dataset from the US Census Bureau |& &| [Image Fading] | 2007-09-10 | hack to fade two images together |& &| [Rotated Text Font] | 2007-09-17 | another way to get rotated text |& &| [Arbitrary Rectangle Selection] | 2007-10-12 | grabs any (including any angle) rectangular area of a canvas |& &| [Text2PDF] | 2007-10-16 | package for converting text into [PDF] |& &| [Parsing PDF] | 2007-10-20 | code to parse and display [PDF] document and page information |& &| [Celtic Braid] | 2007-11-17 | draws an inter-woven pattern reminiscent of a Celtic braid |& &| [Project Euler] | 2008-01-25 | a web site [http://projecteuler.net/index.php?section=about] with a series of really fun programming challenges |& &| [Scotch Yoke] | 2008-03-01 | animation of a Scotch Yoke, converting linear motion into rotary motion |& &| [Tile Table] | 2008-03-21 | yet another table widget, this one using tile's treeview widget |& &| [Grid Debugger] | 2008-04-09 | helps you solve [grid] layout problems |& &| [Tk Robots] | 2008-04-25 | plays the old UNIX robots game |& &| [High Score Package] | 2008-04-29 | package for showing, adding to and saving high scores for a game |& &| [Tk Robots2] | 2008-04-29 | enhanced version of [Tk Robots] |& &| [WhenIdle] | 2008-05-06 | a way to run background commands when user is really idle |& &| [VS Project List Editor] | 2008-07-09 | lets you edit Visual Studio's project list |& &| [Nonogram] | 2008-07-28 | lets you solve nonogram logic puzzles |& &| [Time Picker] | 2008-10-08 | an interesting way to pick times |& &| [GridLines] | 2008-12-30 | another way of solving [grid] layout problems |& &| [Canvas Annotations] | 2009-04-15 | nice looking, moveable annotations for a canvas |& &| [TkAsciiArt] | 2009-07-27 | converts images into ASCII text |& &| [Tk Dali Clock] | 2009-08-31 | tk version of character morphing Dali clock |& &| [CryptoAid] | 2009-10-10 | tool to help you solve cryptograms |& &| [TreeView Tooltips] | 2009-11-07 | how to get tooltip events for a ttk::treeview widget |& &| [Cribbage Crib Aid] | 2009-02-18 | tool to help determine best discard in cribbage |& &| [CheckedListBox Widget] | 2010-03-24 | multi-column list of checkboxes |& &| [ChooseDir] | 2010-04-11 | a better looking version of tk_chooseDirectory |& &| [Extensions to Plotchart 2] | 2010-04-20 | Another extension to [Plotchart] for ribbon x-y graphs |& &| [Pythagoras Tree] | 2010-06-02 | A fractal constructed from squares |& &| [Slippy Map Demo] | 2010-07-05 | How to use [tcllib] slippy module to show street maps |& &| [GPX] | 2010-07-08 | module to extract information from GPX (GPS eXchange) files |& &| [Word Clock] | 2010-07-22 | displays time in English text |& &| [Mormon Porn] | 2010-09-10 | lets your mind turns innocent, albeit racy pictures into a nudie picture |& &| [Line Simplification] | 2010-12-17 | demo of the Douglas-Peucker line simplification algorithm |& &| [Integer Partition] | 2011-04-01 | enumerates all integer partitions of a given number |& &| [Bubble Letters] | 2011-08-08 | transcribes text into unicode circled letters |& &| [CPU Monitor] | 2013-03-08 | visually shows activity for each cpu on your machine |& &| [Nominatim Demo] | 2013-03-12 | how to use [tcllib]'s geocoding Nominatim module |& &| [Celtic Knot] | 2013-05-15 | draws ornamental Celtic Knots |& &| [Reading WEBP image dimensions] | 2013-06-01 | pure tcl routine to read WEBP image dimensions |& &| [EpubCreator] | 2014-03-14 | command line tool for creating an epub from a single file |& &| [EpubDump] | 2014-03-14 | displays the metadata associated with an epub |& &| [Gmail Filters] | 2014-04-08 | parse Gmail filters into csv format |& &| [Flow Colors] | 2014-04-23 | a simple yet addictive puzzle game |& &| [PNG Dump] | 2015-02-16 | displays detailed information about the chunks comprising a png image |& &| [PNG Decoder] | 2015-02-16 | tcl only png decoder |& &| [Penrose Tiling] | 2015-12-01 | play with Penrose non-periodic tiling of the plane |& &| [1010!] | 2016-03-25 | tcl version of the popular 1010! game |& &| [Divisible by 7] | 2016-04-18 | simple, graphical toy to determine if a number is divisible by 7 |& &| [Image Compare] | 2016-04-26 | way to visually compare two images with a sliding bar between them |& &| [Rubik's Cube Timer] | 2016-05-22 | tool for timing Rubik's Cube solves |& &| [Image Sizes] | 2016-05-25 | command line tool for displaying the size of images |& &| [Photo Crop] | 2016-06-13 | tool to help crop images to 4x6 ratio |& &| [Continued Fraction] | 2016-06-15 | displays the https://en.wikipedia.org/wiki/Continued_fraction%|%continued fraction%|% for any expression |& &| [Image Viewer] | 2016-06-16 | a simple, cross-platform image viewing tool |& &| [Photo Album] | 2016-07-22 | a way to lay out photos emulating a photo album |& &| [Super SymDoodle] | 2016-11-22 | extending [A symmetric doodler] to have multiple axes |& &| [string mapx] | 2017-08-10 | like [string map] but allowing the match to use regular expressions |& &| [Clock of Clocks] | 2017-09-09 | a clock animation using smaller clocks as pixels |& &| [Solomon's Knot] | 2017-04-07 | an updated version of my [Celtic Braid] allowing for more intertwining loops |& &| [@decorators] | 2018-05-03 | a tcl implementation of Python's decorator syntax |& &| [Centered Coordinate System] | 2018-06-04 | a snippet to move a canvas's origin to the middle of the widget |& &| [Impossible Triangle] | 2018-06-04 | draws an https://en.wikipedia.org/wiki/Penrose_triangle%|%Impossible Triangle%|% figure |& &| [Tip #288] | 2018-08-15 | my tcl implementation https://core.tcl.tk/tips/doc/trunk/tip/288.md%|%Tip 288 -- Allow "args" Anywhere in Procedure Formal Arguments%|% |& &| [Tip #508] | 2018-08-15 | my tcl implementation https://core.tcl.tk/tips/doc/trunk/tip/508.md%|%Tip 508 -- New subcommand [[array default]]%|% |& &| [ao3] | 2018-08-31 | a scripted interface to the fan-fiction site https://archiveofourown.org/%|%Archive of Our Own%|% |& &| [ao3ToEpub] | 2018-08-31 | a script that uses [ao3] to download stories from fan-fiction site https://archiveofourown.org/%|%Archive of Our Own%|% and turn them into epubs |& &| [Enhanced Expression Syntax] | 2018-09-26 | a tcl-only implementation of https://core.tcl.tk/tips/doc/trunk/tip/282.md%|%Tip 282. |& &| [FamFamFam Demo] | 2019-01-03 | displays all the icons in the [FamFamFam] icon set |& &| [Spider Go] | 2019-01-07 | a variant of [Spider Solitaire] with six columns and only King through 8 |& &| [Magic Squares] | 2019-01-18 | enumerate all unique 4x4 magic squares |& &| [Filter Image fun] | 2019-01-24 | tool for some simple filtering of an image |& &| [Pretty Html] | 2019-03-01 | an HTML formatter |& &| [Razzle Dazzle] 2019-04-24 | a tcl version of the Razzle Dazzle carnival game |& ---- Hey Keith, thanks for sockspy. I used the [starkit] and for the very first time I could understand its use and see how cool it was in Windows. Thanks for all the hard work! ''--[Ro]'' ''Been submitting your [whizzlet]s to [sdarchive] and adding screen dumps, last one is the delightful "Juggler" - I hope that's ok with you... -[jcw]'' ---- [LV] Thank you so much for all your program contributions. It is developers like you which make Tcl such a fun community. [MG] Hey Keith, just wanted to add my thanks for all the code you've added to the Wiki. I've used several of them in the last few days and saved a lot of time (and have ended up with better looking widgets than I'd have likely made on my own), so thanks :) <> Person | Tcl'ers