forked from hardmaru/netart-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnetart-interactive.js
134 lines (114 loc) · 3.18 KB
/
netart-interactive.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
// neural network random art generator
var canvas = document.getElementById('netart_canvas');
var ctx = canvas.getContext('2d');
// globs
var image_resolution = 240;
var network_size = R.randi(12, 20);
var network_depth = 24-network_size;
var color_mode = 0;
var alpha_mode = 0;
var z1 = Math.round(R.randf(-1.0, 1.0)*1000)/1000;
var z2 = Math.round(R.randf(-1.0, 1.0)*1000)/1000;
var model = NetArt.createModel(network_size, network_depth, color_mode);
var img;
function display_image() {
document.getElementById('netart_canvas').width = image_resolution;
document.getElementById('netart_canvas').height = image_resolution;
ctx.putImageData(img.getCanvasImage(ctx), 0, 0);
}
function redraw_all() {
img = NetArt.genImage(model, image_resolution, image_resolution, z1, z2, alpha_mode);
display_image();
}
// main:
redraw_all();
// below are the UI controls:
$("#reinit_button").click(function() {
model = NetArt.createModel(network_size, network_depth, color_mode);
redraw_all();
});
$("#redraw_button").click(function() {
redraw_all();
});
$("#save_button").click(function(){
var fileName = "netart.png";
document.getElementById("save_button").download = fileName;
document.getElementById("save_button").href = canvas.toDataURL("image/png").replace(/^data:image\/[^;]/, 'data:application/octet-stream');
});
$(function() {
$( "#sliderResolution" ).slider({
max : 1080,
min : 100,
step : 10,
value : image_resolution,
change: function (event, ui) {
image_resolution = ui.value;
$("#displayResolution").html("Image Size = "+image_resolution+"px");
},
});
});
$("#displayResolution").html("Image Size = "+image_resolution+"px");
$(function() {
$( "#sliderNetworkSize" ).slider({
max : 24,
min : 2,
step : 1,
value : network_size,
change: function (event, ui) {
network_size = ui.value;
$("#displayNetworkSize").html("Network Size = "+network_size);
},
});
});
$("#displayNetworkSize").html("Network Size = "+network_size);
$(function() {
$( "#sliderNetworkDepth" ).slider({
max : 24,
min : 2,
step : 1,
value : network_depth,
change: function (event, ui) {
network_depth = ui.value;
$("#displayNetworkDepth").html("Network Depth = "+network_depth);
},
});
});
$("#displayNetworkDepth").html("Network Depth = "+network_depth);
$(function() {
$( "#sliderZ1" ).slider({
max : 1.0,
min : -1.0,
step : 0.001,
value : z1,
change: function (event, ui) {
z1 = ui.value;
$("#displayZ1").html("Z1 = "+z1);
},
});
});
$("#displayZ1").html("Z1 = "+z1);
$(function() {
$( "#sliderZ2" ).slider({
max : 1.0,
min : -1.0,
step : 0.001,
value : z2,
change: function (event, ui) {
z2 = ui.value;
$("#displayZ2").html("Z2 = "+z2);
},
});
});
$("#displayZ2").html("Z2 = "+z2);
$(function() {
$( "#colorMode" ).selectmenu({
change: function (event, data) {
color_mode = data.item.index;
},
});
$( "#alphaMode" ).selectmenu({
change: function (event, data) {
alpha_mode = data.item.index;
},
});
});