Пример #1
0
def main(weights, height, width, init_type=1, step_size=100):
    state = init_state(init_type, height, width)
    visualizer = MatrixVisualizer()
    for i in range(step_size):
        print(i)
        state = update_state(state, weights)
        visualizer.update(1 - state)
    input('enter to finish')
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os
sys.path.append(os.pardir)  # 親ディレクトリのファイルをインポートするための設定
import numpy as np
from alifebook_lib.visualizers import MatrixVisualizer
import game_of_life_patterns

# コピーした自分でいじるようのコード

# visualizerの初期化 (Appendix参照)
visualizer = MatrixVisualizer()

WIDTH = 50
HEIGHT = 50

state = np.zeros((HEIGHT, WIDTH), dtype=np.int8)
next_state = np.empty((HEIGHT, WIDTH), dtype=np.int8)

# 初期化
### ランダム ###
# state = np.random.randint(2, size=(HEIGHT,WIDTH), dtype=np.int8)
### game_of_life_patterns.pyの中の各パターンを利用. 左上(2,2)の位置にセットする. ###
# pattern = game_of_life_patterns.OSCILLATOR
# pattern = game_of_life_patterns.STATIC
# pattern = game_of_life_patterns.GLIDER
pattern = game_of_life_patterns.GLIDER_GUN
state[2:2 + pattern.shape[0], 2:2 + pattern.shape[1]] = pattern

while visualizer:  # visualizerはウィンドウが閉じられるとFalseを返す
Пример #3
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Virgo, Nathaniel David. 2011
Thermodynamics and the structure of living systems
"""
import sys, os
sys.path.append(os.pardir)  # 親ディレクトリのファイルをインポートするための設定
import numpy as np
from alifebook_lib.visualizers import MatrixVisualizer

# visualizerの初期化 (Appendix参照)
visualizer = MatrixVisualizer()

# シミュレーションの各パラメタ
X_SIZE = 200
Y_SIZE = 200
dx = 0.01
dt = 1
visualization_step = 16

# モデルの各パラメタ
Da = 2e-5
Db = 1e-5
Dc = 1e-6
r = 0.0347
k_1 = 0.1
k_2 = 0.7
k_3 = 0.003
# 上記論文のオリジナルパラメタセット
# k_1 = 0.2
Пример #4
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Froese, Tom, Nathaniel Virgo, and Takashi Ikegami. 2014
Motility at the origin of life: Its characterization and a model
"""
import sys, os
sys.path.append(os.pardir)  # 親ディレクトリのファイルをインポートするための設定
import numpy as np
from alifebook_lib.visualizers import MatrixVisualizer

# visualizerの初期化 (Appendix参照)
visualizer = MatrixVisualizer()

# シミュレーションの各パラメタ
X_SIZE = 256
Y_SIZE = 256
dx = 1
dt = 0.5
visualization_step = 32

# モデルの各パラメタ
Da = 0.3
Db = 0.15
k = 0.0942
k_p = 0.0002
w = 0.015
r = 0.032

# 初期化
a = np.ones((X_SIZE, Y_SIZE))
Пример #5
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os
sys.path.append(os.pardir)  # 親ディレクトリのファイルをインポートするための設定
import numpy as np
from alifebook_lib.visualizers import MatrixVisualizer
import game_of_life_patterns

WIDTH = 110
HEIGHT = 110

# visualizerの初期化 (Appendix参照)
visualizer = MatrixVisualizer(width=WIDTH * 6, height=HEIGHT * 6)

state = np.zeros((HEIGHT, WIDTH), dtype=np.int8)
next_state = np.empty((HEIGHT, WIDTH), dtype=np.int8)

# 初期化
### ランダム ###
# state = np.random.randint(2, size=(HEIGHT,WIDTH), dtype=np.int8)
### game_of_life_patterns.pyの中の各パターンを利用. 左上(2,2)の位置にセットする. ###
pattern = game_of_life_patterns.DOT
# pattern = game_of_life_patterns.BITMAP
state[2:2 + pattern.shape[0], 2:2 + pattern.shape[1]] = pattern

visualizer.update(1 - state)  # 1を黒, 0を白で表示する

import time
# time.sleep(10)
Пример #6
0
l1 = Letter()
l2 = Letter()
l3 = Letter()
l4 = Letter()


def gen_rands():
    return np.random.randint(-5, 6)


letter_height = l1.current_letter.shape[0]
letter_width = l1.current_letter.shape[1]

# visualizerの初期化 (Appendix参照)
visualizer = MatrixVisualizer(width=WIDTH * 5, height=HEIGHT * 5)

state = np.zeros((HEIGHT, WIDTH), dtype=np.int8)
next_state = np.empty((HEIGHT, WIDTH), dtype=np.int8)

# 初期化
bit_map_label_and_img = game_of_life_patterns.bit_map_label_and_img

# l1_h_rand = gen_rands()
# l1_w_rand = gen_rands()
# l2_h_rand = gen_rands()
# l2_w_rand = gen_rands()
# l3_h_rand = gen_rands()
# l3_w_rand = gen_rands()
# l4_h_rand = gen_rands()
# l4_w_rand = gen_rands()
import sys, os
sys.path.append(os.pardir)  # 親ディレクトリのファイルをインポートするための設定
import numpy as np
from alifebook_lib.visualizers import MatrixVisualizer
import game_of_life_patterns

import time
import cv2

from letter import Letter

HEIGHT = 40
WIDTH = 70

# visualizerの初期化 (Appendix参照)
visualizer = MatrixVisualizer(width=WIDTH * 10, height=HEIGHT * 10)
print('resolution:', visualizer.render().shape)

# 録画の設定
file_name = "scene3_variation_grows_1_toKanji"

fourcc = cv2.VideoWriter_fourcc(
    *'mp4v')  # SEE: https://gist.github.com/takuma7/44f9ecb028ff00e2132e
out = cv2.VideoWriter(
    'outputs/2018summer_art_project/{}.mp4'.format(file_name), fourcc, 30,
    (700, 400))

# 初期化
# bit_map_label_and_img = game_of_life_patterns.NUM_ALPH
# bit_map_label_and_img = game_of_life_patterns.NUM_ALPH_KANA
bit_map_label_and_img = game_of_life_patterns.NUM_ALPH_KANA_KANJI
Пример #8
0
for x in range(height):
    for y in range(width):
        img_pixels.append(img.getpixel((y, x)))

img_pixels_norm = []
for i in range(height * width):
    p = img_pixels[i][0]
    if p == 0:
        img_pixels_norm.append(1.0)
    else:
        img_pixels_norm.append(0.)

img_pixels_norm = np.array(img_pixels_norm).reshape(height, width)

# visualizerの初期化 (Appendix参照)
visualizer = MatrixVisualizer()

# シミュレーションの各パラメタ
SPACE_GRID_SIZE = height
dx = 0.01
dt = 1
VISUALIZATION_STEP = 8  # 何ステップごとに画面を更新するか。

# モデルの各パラメタ
Du = 2e-5
Dv = 1e-5
f, k = 0.04, 0.06  # amorphous
#f, k = 0.035, 0.065  # spots
# f, k = 0.012, 0.05  # wandering bubbles
#f, k = 0.025, 0.05  # waves
#f, k = 0.022, 0.051 # stripe
Пример #9
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os
sys.path.append(os.pardir)  # 親ディレクトリのファイルをインポートするための設定
import numpy as np
from alifebook_lib.visualizers import MatrixVisualizer

# visualizerの初期化。表示領域のサイズを与える。
visualizer = MatrixVisualizer(600, 600)

# シミュレーションの各パラメタ
VISUALIZATION_TIME = 256  # size of visualized time duration = visualization height
SPACE_SIZE = 256  # size of 1D space = visualization width
dx = 0.01
dt = 1
visualization_step = 1

# モデルの各パラメタ
Du = 2e-5
Dv = 1e-5
f, k = 0.018, 0.077

# 初期化
u = np.zeros((VISUALIZATION_TIME, SPACE_SIZE))
v = np.zeros((VISUALIZATION_TIME, SPACE_SIZE))
INIT_PATTERN_SIZE = 20
u[0, :] = 1.0
v[0, :] = 0.0
u[0, SPACE_SIZE // 2 - INIT_PATTERN_SIZE // 2:SPACE_SIZE // 2 +
  INIT_PATTERN_SIZE // 2] = 0.5