Abaci


Java Abacus

Click on a abacus below to run Java Abacus (mostly by David Bagley (help in initial conversion to Java by Sarat Chandran)). Icons below are all zeroed and should give a rough idea on what to expect.

There are two modes in menu that will help you learn how to use the abacus:

the "demo" mode: here some static lessons are given for the different types of abacus. The lessons include counting, adding, subtracting, and multiplying. The original lessons were taken from work by Luis Fernandes.

the "teach" mode: here you learn at your own pace by entering your own calculation like "A+B", "A-B", "A*B", or "A/B" (where A>0 and result positive). Pressing the enter key, will give you a step by step explanation and show proper moves on the abacus. According to the books below, you are supposed to start on left side, when adding or subtracting multi-digit numbers. (There is a menu option "rightToLeftAdd", if you think this is inefficient (similar one for multiplication "rightToLeftMult")). Lee's Abacus is more suitable if you are learning multiplication and division, as there are extra places to store operands.

New SQRT operation is a new (19 Aug 2010 first draft - 1 Sep 2010 latest update) feature that is currently being added. Currently it solves perfect squares (0 - 104080804 tested with internal tester) in teach mode. Try it out with "10201v" in teach mode on a "Lee's Abacus". Unlike the other operations, sqrt reduces to an answer from which you must divide by 2. (You can try that out like "202/2", once sqrt operation gives you its "doubled" answer). This follows closely the work of Lee Kai-chen from his book "How to Learn Lee's Abacus". Let me know of any problems.

Now handles floating point numbers too! Move the decimal point slider to the left before starting to increase precision. Now if you can just input negatives... the solution would involve turing the abacus sideways. ;)
Only Java version available. C version (kind of needs to run on X Window System though) available upon request.
CBRT operation yet to implement.

Configurations (+ menu interface) Applet
Chinese Abacus (also
available Korean, Japanese,
Roman, Russian, Danish)
Abacus (Control Menu)
Lee's Abacus
Principal Chinese with a Noneven
Distributed 7 Rail Auxiliary
Lee Abacus Noneven CN (Control Menu)
Lee's Abacus
Principal Korean with a Noneven
Distributed 7 Rail Auxiliary
Lee Abacus Noneven KO (Control Menu)
Lee's Abacus
Principal Chinese with a Even
Distributed 9 Rail Auxiliary
Lee Abacus Even CN (Control Menu)

The simplest configurations are the below static versions. The menu interface control has been taken out (except for some non-base 10 examples). This control feature is available in the menu versions above. The control interface lets you change formats easily. However, the static versions can be modified by clicking on the abacus itself, then, for example, "i" and "d" will increase and decrease the number of rails and "f" will change formats. A New feature is the "complement" function to help handle negatives in future.

Static Configurations Applet
Chinese Abacus
(Saun-pan)
Chinese Abacus
Korean Abacus
(Supan, AKA Japanese
Soroban pre-WWII)
Korean Abacus
Japanese Abacus
(Soroban post-WWII)
Japanese Abacus
Roman Hand Abacus
right most column twelfths and
Ancient Roman Numerals in display
Roman Hand Abacus
Roman Hand Abacus
right most column eighths and
Modern Roman Numerals on abacus
Roman Hand Abacus (8)
Russian Abacus
(Schoty)
Russian Abacus
Old Russian Abacus
(Schoty w/ 1/4 Kopek)
Old Russian Abacus
Georgian Abacus
(Russian base 20, for warmer climate
(no shoes), do not take seriously)
Georgian Abacus
Danish School Abacus Danish Abacus
Mesoamerican Abacus
(Nepohualtzintzin,
similar to Japanese base 20)
Mesoamerican Abacus
Babylonian Watch
(proposed by author)
Babylonian Watch Proposal
Chinese
Solid-And-Broken-Bar
System (base 12)
Early Chinese Numbering
Base 16 Abacus
(Japanese base 16)
Base 16 Abacus
Lee's Abacus
Principal Chinese with a Noneven
Distributed 7 Rail Auxiliary
Lee Abacus Noneven CN
Lee's Abacus
Principal Korean with a Noneven
Distributed 7 Rail Auxiliary
Lee Abacus Noneven KO
Lee's Abacus
Principal Chinese with a Even
Distributed 9 Rail Auxiliary
Lee Abacus Even CN

You can download the jar file (preserve the .jar extension), and then it can be run as an application like "java -jar AbacusApp.jar -rails=15" or "java -jar AbacusApp.jar -lee=1 -leftAuxRails=9 -rightAuxRails=9". The X Manual Page is written for the X version but may be useful to understanding the Java program. (Using Javascript, I used to have resizable scaling links but seemed to crash browsers randomly.)

Source Code X Manual Page Javadoc Jar File
abacus.zip xabacus AbacusApplet AbacusApp.jar

See project notes for todo list and history. Please let me know if I left out anything.

X Abacus

Manual for xabacus, see table above.
See xabacus.README and xabacus.lsm.

C/C++ Source Code for X and Windows (xabacus 7.6.4, bzip2'd file)
xabacus at tux.org (http)
xabacus at tux.org (ftp)
xabacus at ibiblio.org

C/C++ Source Code and Binary for Windows (wabacus zip'd file, same source as above compiled with MinGW).
wabacus (Windows abacus)

More Abacus stuff

ABACUS Guide Book
HOW TO LEARN LEE'S ABACUS
Books by Takashi Kojima
The Japanese Abacus, Its Use and Theory
Advanced Abacus Japanese Theory and Practice
The Abacus
Salamis Tablet
TOMOE Soroban

Send comments/suggestions to:
Abacus maintainer

Maintainer's Home Page
Last Revised: 1 September 2010