Ferris Fencing

An eternal duel between
programmable crabs
with swords.

Ferris Fencing is a live tournament in which player-programmed bots combat each other on a RISC-V virtual machine.

It is a showcase of CKB-VM, a simple implementation of the RISC-V instruction set, written in the Rust programming language.

Joining the Tournament

The Ferris Fencing tournament is not yet live (the above is a demo), but fencers may begin building their bots and testing them locally. Instructions are in the GitHub repo.

The Rules

Matches are contested between two fencers, each named Ferris, and each running in their own VM.

The fencers square off on a one-dimensional grid 10 spaces wide.

Each match consists of 5 games. The player to win the most games wins the match.

Games consist of up to 20 turns. Each turn, Ferris may move forward one space, backward one space, stand in place, or lunge two spaces toward the opponent.

A game is won by lunging and landing on the same space as the opponent lands. Beware though — a lunge can be countered, and the game won, by stepping backward into an opposing lunge, parying it.

Otherwise, colliding fencers repel each other proportionate to the relative strength of their moves.

Fencers have limited energy (CPU cycles) per game, and in the event of a tie, the fencer with the most remaining energy wins.


Ferris Fencing was created for Rust.Tokyo 2019 by Aimee Zhu and Brian Anderson.