Enviar búsqueda
Cargar
シェーダープログラムを無限に生成するガチャつくってみた PCD2019
•
Descargar como PPTX, PDF
•
3 recomendaciones
•
1,323 vistas
Masaru Mizuochi
Seguir
PCD2019
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 26
Descargar ahora
Recomendados
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
Masaru Mizuochi
JavaScript Hackathon for Students
JavaScript Hackathon for Students
Takumi Ohashi
enchant.jsでゲーム制作をはじめてみよう
enchant.jsでゲーム制作をはじめてみよう
Ryota Shiroguchi
Arctic.js
Arctic.js
chikathreesix
Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceup
Yohei Munesada
Canvas de shooting 制作のポイント
Canvas de shooting 制作のポイント
Yohei Munesada
Backbone model collection (jscafe 8)
Backbone model collection (jscafe 8)
Ryuma Tsukano
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
圭輔 大曽根
Recomendados
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
Masaru Mizuochi
JavaScript Hackathon for Students
JavaScript Hackathon for Students
Takumi Ohashi
enchant.jsでゲーム制作をはじめてみよう
enchant.jsでゲーム制作をはじめてみよう
Ryota Shiroguchi
Arctic.js
Arctic.js
chikathreesix
Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceup
Yohei Munesada
Canvas de shooting 制作のポイント
Canvas de shooting 制作のポイント
Yohei Munesada
Backbone model collection (jscafe 8)
Backbone model collection (jscafe 8)
Ryuma Tsukano
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
圭輔 大曽根
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Ryuichi Ueda
Squirrel
Squirrel
melpon
20130622第5回シェル芸勉強会スライド
20130622第5回シェル芸勉強会スライド
Ryuichi Ueda
20130413シェル芸勉強会スライド
20130413シェル芸勉強会スライド
Ryuichi Ueda
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
画像を縮小するお話
画像を縮小するお話
technocat
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
Ryota Shiroguchi
Osakijs #01 「enchant.jsハンズオン資料」
Osakijs #01 「enchant.jsハンズオン資料」
Yusuke HIDESHIMA
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
Yosuke Onoue
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu
How to make Inn-fighting dice
How to make Inn-fighting dice
Masujima Ryohei
三角関係になったときの対処法
三角関係になったときの対処法
Yachiyo Suzuki
2012年10月27日 Hbstudy#38
2012年10月27日 Hbstudy#38
Ryuichi Ueda
Processing workshop v3.0
Processing workshop v3.0
Wataru Kani
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Más contenido relacionado
La actualidad más candente
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Ryuichi Ueda
Squirrel
Squirrel
melpon
20130622第5回シェル芸勉強会スライド
20130622第5回シェル芸勉強会スライド
Ryuichi Ueda
20130413シェル芸勉強会スライド
20130413シェル芸勉強会スライド
Ryuichi Ueda
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
画像を縮小するお話
画像を縮小するお話
technocat
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
Ryota Shiroguchi
Osakijs #01 「enchant.jsハンズオン資料」
Osakijs #01 「enchant.jsハンズオン資料」
Yusuke HIDESHIMA
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
Yosuke Onoue
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu
How to make Inn-fighting dice
How to make Inn-fighting dice
Masujima Ryohei
三角関係になったときの対処法
三角関係になったときの対処法
Yachiyo Suzuki
2012年10月27日 Hbstudy#38
2012年10月27日 Hbstudy#38
Ryuichi Ueda
Processing workshop v3.0
Processing workshop v3.0
Wataru Kani
La actualidad más candente
(15)
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Squirrel
Squirrel
20130622第5回シェル芸勉強会スライド
20130622第5回シェル芸勉強会スライド
20130413シェル芸勉強会スライド
20130413シェル芸勉強会スライド
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
画像を縮小するお話
画像を縮小するお話
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン
Osakijs #01 「enchant.jsハンズオン資料」
Osakijs #01 「enchant.jsハンズオン資料」
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
How to make Inn-fighting dice
How to make Inn-fighting dice
三角関係になったときの対処法
三角関係になったときの対処法
2012年10月27日 Hbstudy#38
2012年10月27日 Hbstudy#38
Processing workshop v3.0
Processing workshop v3.0
Último
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Último
(9)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
シェーダープログラムを無限に生成するガチャつくってみた PCD2019
1.
シェーダープログラムを無限に生成するガチャつくってみた Masaru Mizuochi @_mizumasa Processing Community
Day 2019 LT
2.
@_mizumasa
3.
What‘s シェーダー ガチャ !!??
4.
5.
CharActor キャラクター 文字 人?
6.
フラグメントシェーダーの構成 fragColor = vec4( abs(
sin( cos( time + 3. * uv.y ) * 2. * uv.x + time)), abs( cos( sin( time + 2. * uv.x ) * 3. * uv.y + time)), 1.0, 1.0);
7.
生成モデル 7 fragColor = vec4( abs(□),abs(□),1.0,1.0); ↓ □
= sin(□) ↓ □ = □ + time shader code model sin( cos( time + 3. * uv.y ) ) ↓ (cos(□) → log( cos(□) )) sin( log( cos( time + 3. * uv.y ) ) ) code extension a section of the code in Figure 1 sin( cos( time + 3. * uv.y ) ) → sin( sin( time + 3. * uv.x ) ) a section of another code tan( sin( uv.x + 4. * log( time ) ) ) → tan( cos( uv.y + 4. * log( time ) ) ) code exchange
8.
一瞬でこれぐらいのコードが書ける 8
9.
自分で書かなくてすむ (そのシステムを組むのには2000行書いてるけど) 9 もっと賢く できるのでは?
10.
強化学習でやってみる 10 fragColor = vec4( abs(□),abs(□),1.0,1.0); ↓ □
= sin(□) ↓ □ = □ + time 行動: 式の生成時に関数を選ぶ 行動: 式の生成時に関数を選ぶ 評価: 生成された映像の複雑さ ≒ PNG圧縮した時のサイズ
11.
強化学習って? 11 行動した結果の報酬を見て、学習する
12.
chainerRLを使うと100行で強化学習が書ける 12 import chainer, chainerrl import
chainer.functions as F import chainer.links as L import numpy as np class Board(): def reset(self): self.boardW, self.boardH= (4,6) self.actNum = 3 #0:left 1:stay 2:right self.obs = np.array([0] * 5, dtype=np.float32) self.barPosX = np.random.randint(0,self.boardW) self.ballPosX = np.random.randint(0,self.boardW) self.ballPosY = 0 self.ballSpeedX = np.random.choice([-1,1]) self.ballSpeedY = 1 self.setObs() self.count = 0 self.reward,self.done, self.info = 0, False, 0 returnself.obs def step(self, action): self.barPosX = np.clip(self.barPosX + action - 1, 0, self.boardW- 1) if (self.ballPosX == (self.boardW- 1)) and (self.ballSpeedX== 1): self.ballSpeedX *= -1 if (self.ballPosX == 0) and (self.ballSpeedX == -1): self.ballSpeedX*= -1 if (self.ballPosY == 0) and (self.ballSpeedY== -1): self.ballSpeedY*= -1 if (self.ballPosY == (self.boardH- 2)) and (self.ballSpeedY== 1) and (self.ballPosX== self.barPosX):self.ballSpeedY*= -1 self.ballPosX += self.ballSpeedX self.ballPosY += self.ballSpeedY self.setObs() self.check() returnself.obs, self.reward, self.done,self.info def setObs(self): self.obs[0]= self.barPosX self.obs[1]= self.ballPosX self.obs[2]= self.ballPosY self.obs[3]= self.ballSpeedX self.obs[4]= self.ballSpeedY def check(self): self.reward = 1 if ( self.ballPosY== (self.boardH- 1) ): #ball miss self.reward= -1 self.done = True def get_random(self): self.count += 1 returnnp.random.randint(0,self.actNum) def show(self): board= np.zeros((self.boardH,self.boardW),dtype="uint8") board[self.boardH- 1, self.barPosX]+= 2 #barpos board[self.ballPosY, self.ballPosX]+= 1 #ballpos print board class QFunction(chainer.Chain): def __init__(self,obs_size,n_actions, n_hidden_channels=50): super(QFunction,self).__init__() withself.init_scope(): self.l0 = L.Linear(obs_size, n_hidden_channels) self.l1 = L.Linear(n_hidden_channels,n_hidden_channels) self.l2 = L.Linear(n_hidden_channels,n_actions) def __call__(self,x, test=False): h = F.tanh(self.l0(x)) h = F.tanh(self.l1(h)) returnchainerrl.action_value.DiscreteActionValue(self.l2(h)) if __name__ == '__main__': env = Board() obs = env.reset() q_func = QFunction(len(obs), env.actNum) optimizer= chainer.optimizers.Adam(eps=1e-2) optimizer.setup(q_func) explorer= chainerrl.explorers.ConstantEpsilonGreedy( epsilon=0.3,random_action_func=env.get_random) replay_buffer = chainerrl.replay_buffer.ReplayBuffer(capacity=10 ** 6) phi = lambdax: x.astype(np.float32,copy=False) agent = chainerrl.agents.DoubleDQN( q_func, optimizer, replay_buffer, 0.95, explorer, replay_start_size=500, update_interval=1, target_update_interval=100, phi=phi) n_episodes = 2000 max_episode_len = 20 for i in range(n_episodes): obs= env.reset() reward = 0 done= False R = 0 # return (sum of rewards) t = 0 # timestep whilenot done and t < max_episode_len: action = agent.act_and_train(obs.copy(),reward) obs, reward, done,_ = env.step(action) R += reward t += 1 print('trainepisode:', i,'R:', R,'count:',env.count,'step:',t,'statistics:', agent.get_statistics()) agent.stop_episode_and_train(obs.copy(),reward,done) obs = env.reset() done = False R = 0 whilenot done and R < 400: action = agent.act(obs) obs, r, done, _ = env.step(action) R += r env.show() print('testepisodeR:', R) agent.stop_episode() agent.save('dqn') 落ちないように行動を選択 100行で始める深層強化学習 (0から壁打ちゲーム) としてQiitaにまとめました https://qiita.com/mizumasa/items/86204211581336f412ef
13.
シェダー生成は学習できるか? 13 複雑になった
14.
名刺デザイン100パターンできた 14
15.
15 アートイベント 会場デザイン 御殿山地区 東京マリオットホテル 地域と教育 テクノロジー体験
16.
16 なぜつくるのか
17.
人間の創造性はどこへ向かう? 17The Power of
PowerPoint - thepopp.com
18.
Creative Codingの歴史(田所さんの資料より) 18The Power
of PowerPoint - thepopp.com
19.
Creative Codingの歴史(田所さんの資料より) 19The Power
of PowerPoint - thepopp.com Hyper media / Web Game 3D Graphics Sound / Music Sound / Music Sketch
20.
Creative Codingの歴史(田所さんの資料より) 20The Power
of PowerPoint - thepopp.com Hyper media / Web Game 3D Graphics Sound / Music Sound / Music Sketch ????
21.
21 Grow + Group
22.
ジェネラティブ、アルゴリズミックデザイン 22The Power of
PowerPoint - thepopp.com Autodesk, Houdiniといったツール デザイン、プロダクト、建築に広 がる
23.
人工生命 ライフゲームやBoidsモデル 23The Power
of PowerPoint - thepopp.com
24.
24 種の多様性そのものを デザインとみる
25.
数式が作り出す個性 = CharActor
26.
26 遺伝子のように解釈されるコード 個と群 多様性が生む美しさ それは生命そのものかもしれない
Descargar ahora