npainter
npainter copied to clipboard
Artistic patterns using recurrent neural network
Npainter
Artistic patterns using recurrent neural network. We use recurrent neural network that takes coordinate (x, y) and outputs RBG value to generate the patterns. We have added non linearity functions to recurrent.js and by randomly assigning weights to neural network.
Try Npainter AI

Gallery
High res available here
Different non linearity functions used to generate patterns.
Parameters of styling network
1.Number of neurons per layer
2.Number of hidden layers
3 Stroke strength
Full implementation [neuralpaint.js] (https://github.com/rupeshs/npainter/blob/master/js/neuralpaint.js)
Style | Non linearity function | Stroke Strength |
---|---|---|
![]() |
out.w[i] = Math.log10(Math.abs(m.w[i]) + sstrength) | 1e-1 to 1e-10 |
![]() |
out.w[i] = Math.tanh(Math.abs(m.w[i])) | |
![]() |
out.w[i] = Math.log(Math.abs(m.w[i]) + 0.1) | |
![]() |
out.w[i] = out.w[i] = Math.tanh(Math.abs(m.w[i])) | |
![]() |
out.w[i] = Math.abs(m.w[i] * m.w[i]) | |
![]() |
out.w[i] = m.w[i] * Math.abs(1 / m.w[i]) | |
![]() |
out.w[i] = m.w[i] * Math.log10(Math.abs(m.w[i] * m.w[i]) + sstrength); | 1e-1 to 1e-10 |
![]() |
out.w[i] = Math.abs(1 / m.w[i]) * m.w[i] * Math.log(Math.abs(m.w[i]) + 9e-1) | |
![]() |
out.w[i] = Math.log(Math.abs(m.w[i]) + 1) | |
![]() |
out.w[i] = Math.abs(1 / Math.tanh(m.w[i])) * m.w[i] * Math.log10(Math.abs(m.w[i]) + 8.5e-1) | |
![]() |
out.w[i] = Math.abs(1 / m.w[i]) * m.w[i] * Math.log10(Math.abs(m.w[i]) + 1e-1) |
References
[The Unreasonable Effectiveness of Recurrent Neural Networks] (http://karpathy.github.io/2015/05/21/rnn-effectiveness/)