While similar to cattributes, genes are different in that they include the hidden aspects of CryptoKitties. Genes are returned in hexadecimal format. A number of notations exist for trying to express Genes, with the forerunner being KAI notation.
The first person to decode the CryptoKitties genome was kaigani. The lack of features involving genes and the decoding of the structure by the community highlights that the CryptoKitties core policy regarding genes is that they are ultimately somewhat "mystical" or hidden-knowledge for the player. This is not true relative to how the game has unfolded, as a number of tools are available to unpack the mystery of the CryptoKitties genome.
Not all genes from a kitty are visible cattributes which are visually apparent in the rendered SVGs. Each gene has 4 slots it can be present for it's given trait category. These slots are called Primary (P) or active, hidden layer 1 (H1), hidden layer 2 (H2), and hidden layer 3 (H3).
New cattributes can be released in a hidden slot and this will dictate how easy it is to find kitties with that cattribute active at a low generation.
Kai notation is the first notation used in decoding the CryptoKitties genome. Created by Eugene Otto (KittyRace & CryptoKittyDex), this base-58 system notation is named in honor of kaigani. Due to the complexities involved with working in with it, most of the community has encouraged the use of other notations.