Slitherlink, Minisat, and Emscripten

This is a demonstration of using the minisat SAT solver to solve slitherlink puzzles in your web browser. I generated a javascript version of minisat by using emscripten, which compiles any language that LLVM likes into javascript's ASM. They claim that the result can run at near-native speed. My experience is consistent with that.

Let me repeat that in case it went by too quickly. The puzzle is not being solved by a server somewhere. The solver is written in javascript, and running in your browser.

A note on browsers: I've run this successfully on chrome and safari (including an iphone). This does not run on firefox. I don't want to spend the time right now figuring out what's wrong. Everybody should have chrome at least for an emergency backup browser, right?

Enter a puzzle by one of the following methods...

...and then click "Solve".

Rows:
Columns:



<-- Explained below

You can type a puzzle into the textarea below, or copy and paste. Use a period for squares that have no constraint. I remove all whitespace. There's an example below the textarea for you to copy and paste.

.01.1.0.33.2.2.12.
1...2..3..2..0...2
...1.2......2.3...
.2.2..3.03.3..3.1.
2..0.1.1..2.2.1..1
2..3.2.1..1.1.2..1
.3.2..2.11.3..0.1.
...1.2......1.2...
3...1..1..3..2...3
.02.1.3.10.3.0.10.