Every card has four properties:

Three cards form a set if and only if: for every property, the three cards are either in total agreement or in total disagreement. In other words, three cards form a set when they satisfy these four conditions:

By @johnloeber. Check out my website, or read the documentation for this project.