ForHosting KIT · Math

Maya vigesimal numeral converter free

Convert whole numbers into Maya base-twenty numerals and back, written as the plain words shell, bar and dot: 0 is a single shell, and every place from 1 to 19 is bars of five plus dots. Works up to 63,999,999. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Direction
Decimal to Maya
Decimal number
0
You get
Maya glyphs (highest place first)
shell
Digit value per place (0–19)
0

Converts integers to Maya vigesimal place glyphs (dots, bars, shell) in ASCII and back. Free, deterministic, and private in your browser. No account required.

How the Maya wrote numbers in base twenty

Maya numerals count in twenties instead of tens. Each place is worth twenty times the place below it, so the units come first, then the twenties, and so on up through six places. Inside one place, the digit runs from zero to nineteen and is drawn with bars and dots: every bar stands for five and the dots, up to four, add the rest, so nineteen is three bars and four dots. Zero has its own sign, a shell, which keeps an empty place visible. Here each sign is written as a plain English word, shell, bar or dot, so you can copy the result into notes, a worksheet or a drawing tool.

Converting in both directions without slips

To go from a decimal number to Maya numerals, type a whole number from 0 to 63,999,999 and you get the places from the highest power of twenty down to the units, each with its value from 0 to 19. To go back, list the places in that same order using the words shell, bar and dot, and the tool multiplies by twenty at each step before adding the next place. The usual mistakes are reading the places in the wrong order, forgetting the shell for an empty place and drawing five dots where a bar belongs. Places with an unknown sign, a value above nineteen or a number outside the range are refused with a clear message.

Inputs and outputs

Provide mode plus either n or places. Required fields must be present and correctly typed. Optional fields use documented defaults.

Error messages use stable English match substrings for the harness.

Edge cases and limits

Zero maps to a single shell place. Twenty maps to one bar power and a shell unit. Negative n is rejected.

Extremely large intermediate values beyond the six place window become an out of range error rather than null fields.

Homework and exams

Check classic quantitative problems quickly with stable, reproducible answers.

Automation

Call the same pure function from scripts without installing a spreadsheet or CAS.

Is this free?

Yes. Tier A runs entirely in your browser without an account.

How do I read Maya numerals back into a decimal number?

Choose the reverse direction and list the places from the highest one down to the units, writing each with the words shell, bar and dot. The tool multiplies by twenty at every step, adds the next place and shows the decimal total.

What is the largest number it can convert?

63,999,999, the biggest value that fits in six places of base twenty. Larger numbers, negative numbers and anything that is not a whole number are refused instead of being cut or rounded.

How many bars and dots make up each digit?

Each bar is worth five and each dot one, with at most four dots. A digit from 1 to 19 uses as many bars as fit plus the remaining dots, so 19 is three bars and four dots.

How is zero written in Maya numerals?

With a shell. The number zero on its own becomes a single shell, and inside a larger number a shell marks any place that holds nothing, so the other places keep their value.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/math/maya-numerals

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/math/maya-numerals \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"to_maya","n":1}'
{
  "mode": "to_maya",
  "n": 1
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.maya_numerals",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

How it works

Each place value uses base twenty. Digits from one to nineteen are written with bars of five plus remaining dots; zero is a shell token. Glyph encoding is pure ASCII: shell for zero, the word bar repeated for each group of five, and the word dot repeated for the remainder one through four. Mode to_maya walks an integer from zero through sixty three million nine hundred ninety nine thousand nine hundred ninety nine and emits place glyphs from the highest power of twenty down to the units place. Mode from_maya reads a non empty array of glyph tokens, multiplies by twenty for each step, and returns the decimal total. The implementation is fully deterministic and runs free in the browser with the same pure function as the API path. Inputs are validated before any arithmetic so wrong types and out of range values become clear invalid_input errors instead of silent NaN results.

Inputs and outputs

When mode is to_maya you send an integer n and receive places as ASCII tokens plus place_values as the matching integers zero through nineteen. When mode is from_maya you send places as a non empty string array of shell, bar and dot tokens and receive the reconstructed integer n. The success payload always includes the primary result fields named in the output schema so clients can bind UI metrics without guessing. Empty place arrays, digits outside zero through nineteen, unknown glyph text, and n outside the allowed range are rejected early with invalid_input.

Edge cases and limits

Because every path is pure and seed free, repeated calls with the same body always return the same JSON shape and values. This makes homework checks, classroom demos, and scripted automation safe to run offline without a spreadsheet or computer algebra system.

Teaching demos

Show worked examples with golden fixtures that match the free widget and the API.

Does it call the network?

No. The parse engine keeps everything on-device.

What if my input is invalid?

You receive invalid_input with a clear English message.

Are results stable?

Yes. Deterministic math and golden examples freeze the contract.

Who authors this capacity?

Pavilion on the ForHosting KIT workshop.

Read the full KIT documentation →