[Fudgets Home Page]


Thanks to the network transparency of the X Window System, it is possible for a fudget program running on our server to display its windows on your computer screen!

At least, this was true in the good old days when Fudgets were created. The Internet has become more complicated since then, and it is no longer possible to start the demos from this web page. But

[Fudget Clock in its natural environment]

Fudget Clock

This is a simple clock with a transparent backround. It illustrates that Fudgets supports
[Fudpaint window]

FudPaint - a simple paint program

This is a very simple paint program. One point with it is that illustrates that you can have graphics inside radio buttons. (This has always been possible, but has been made easy in the h12 release.)

See also the FudPaint Gallery!

[Graph window]

Graph - function plotting

This program allows you to enter a function from real to real (as an expression containing the variable x) to plot its graph. Once you have entered a function you can The expression language supports the usual arithmetic operators, + - * / ^, the trigonometric functions, sin cos tan atan..., and some other functions, exp log sqrt abs sinh cosh...

[New Graph window]

This kind of application is very suitable for implementation in a functional language since it requires expression parsing, symbolic expression manipulation and evaluation of expressions, all of which is very simple to do in a functional language.

To plot a function, it needs to be evaluated at hundreds of points (depending on the size of the window). Even though a very simple interpreter is used for this, plotting a function usually takes only a fraction of a second.

(Updated 991215)

Try the The WebFudgets Calculator (a simplified version).

Conway's game of Life

This program opens two windows: a simulation window and a control panel. You can add and remove cells by clicking in the simulation window. The control panel allows you to start and stop the simulation and change the size of the cells.

[SpaceInvaders2 window animation]

Space Invaders

This is a Fudgets implementation (based on Xinvaders by Jonny Goldman). of the good old computer game Space Invaders.

You move the gun by pressing the left and right mouse buttons. You fire by pressing the middle mouse button.

The 1994 paper Implementing Real-time Interactive Multi-User Games with Fudgets describes the implementation. (This is actually a second implementation, which is slightly more efficent than the one described in the paper, and it was improved further in 2017 to make it a more complete game.)

Try SpaceInvaders ported to WebFudgets.

[Tiles window]


Escher tile design program, using Fudgets

Author: Rob Noble (rjn@minster.york.ac.uk)

This is my experimental Fudget-testing application which is similar to the program that Sandra Foubister wrote to illustrate interaction combinators*, but with less features.

The screen looks something like this:

  -------------            ---------------
 |             |    ---   |               |
 |             |   | c |  |               |
 |             |   |-h-|  |               |
 | design      |   | o |  |  board        |
 |             |   |-i-|  |               |
 |             |   | c |  |               |
 |             |   |-e-|  |               |
 |             |   |   |  |               |
  -------------     ---    ---------------

  -------------            ---------------
 |finished des.|          |update w. tile |
  -------------            ---------------

                      |   |   |   |   |   |   |   
                      |   |   |   |   |   |   |   
Choice shows the set of tiles you can use. Clicking on one of these tiles makes that one the current tile. This tile is transfered to the design area, and eight rotations/reflections of the tile appear in the 8 left-most boxes of the tools area. Picking one of these reflections/ rotations enables it to be placed on the board. The right four boxes of the tools area enable tiles on the board to be rotated/reflected.

Lines may be added to the design using the left mouse button, and deleted using the right mouse button. Clicking the button underneath design transfers the new design to the currently selected tile in choice, and to the tools area.

Clicking the button underneath board updates the tiles on the board to the currently selected tile (in whatever rotation/reflection the each previous tile on the board was in).

NB. The two update buttons can be a little slow to operate (on my Sun 3/60) because they have a lot of effect on the screen.

Bugs: the grid obscures vertical and horizontal lines in the design area. I could not change the line thickness or colour because the GCChangeAttributes (I think?) command wasn't implemented.

[Atoms window]

Otto and Atoms

These are two board games. Atoms is also called Explode.

Otto is a program that allows you to play Othello against the computer (it does not play a very strong game).

In Atoms two players place stones (atoms) on the squares of a board. When a square is full it explodes and the atoms invade the neighbour squares. This can cause a chain reaction. The purpose is to dominate the board.

Implementation notes can be found in the Fudget solution to the Explode challange in the Glasgow GUI Fest documentation.

Try Otto ported to WebFudgets.

[Luff window]


This is an implementation of the game "Noughts and Crosses". In this case, only the user interface is implemented using fudgets, while the arbiter and computer player is implemented as a separate program, written in C++ by Claes Löfqvist.

[WWWBrowser window]


WWWBrowser is a prototype WWW browser implemented using Fudgets in the summer 1994. It supports forms and inlined images.

Since it fetches inlined images in parallel (this is easy to implement using Fudgets) it is often faster than browsers like NCSA Mosaic, that fetch one image at a time.

Implementation notes can be found in the Fudgets solution to the HTML browser challenge in the Glawgow GUI Fest documentation.