<p>HyperNEAT is primarily a tool for medical applications. A typical setup is to use a EPOC Headset (that is hardware for detecting EEG waves from the brain) together with a opensource software parser Emokit <a href="http://mooc.ee/MTAT.03.291/2014_spring/uploads/Main/Signal%20Quality%20and%20Data%20Visualizer%20for%20Emotiv%20EPOC.pdf" rel="nofollow">Signal Quality and Data Visualizer for Emotiv EPOC</a>. In the above paper only the Fast Fourier Transform is used for analyzing signals, and here comes HyperNEAT into the game. HyperNEAT can be trained in a way that it can interpret EEG signals better. <a href="https://daim.idi.ntnu.no/masteroppgaver/007/7564/masteroppgave.pdf" rel="nofollow">Emotion Recognition in EEG</a> The CPPN submodul is for translating brainwaves into visual attractive patterns <a href="https://arxiv.org/pdf/1304.4889.pdf" rel="nofollow">Hands-free Evolution of 3D-printable Objects via Eye Tracking</a></p>
HyperNEAT - Difference between the substrate activation functions and CPPN activation functions
<p>I've been messing around with HyperNEAT and ran into a slight issue. From what I understand, the substrate is the initial layout of nodes which are subsequently used to query a CPPN to provide connection weights. I understand that the CPPN activation functions are just the set of activation functions that can appear in each node in the CPPN, but what do the substrate activation functions refer to? I was under the impression that the substrate is not necessarily a network but just a layout used to incorporate the geometry of the problem into the CPPN's pattern producing abilities. So where do substrate activation functions come in?</p>

<p>EDIT: I'm using <a href="https://github.com/lordjesus/UnityNEAT" rel="nofollow">UnityNEAT</a> which is a port of <a href="http://sharpneat.sourceforge.net/" rel="nofollow">SharpNEAT</a> to Unity.</p>

<p>Thanks</p>