SlideShare ist ein Scribd-Unternehmen logo
1 von 35
1
Procedural Content
Generation with Clojure
Mike Anderson
2
Contents
1. Procedural Content Generation
2. Introducing Clojure
3. Creating content with Clisk
3
Definition
Procedural content generation (PCG)
is the programmatic generation
of content using algorithms, which may
incorporate random or pseudo-random
processes
4
Some applications
Content Types Examples
Images
• 3D model textures
• Abstract art
Pioneering work by Ken
Perlin (inventor of Perlin
noise)
Music
• Melodies
• Synthesised sounds
Work by Jeremy
Leach
http://algorithmiccomposition.org/
Game content
• Game items
• Random maps
Roguelike games
Virtual Worlds
• Landscapes
• Plants / animals
• Alien races
No Man’s Sky
(planned release 2016)
5
Image Generation
(0,0)
y-axis
(0,1) (1,1)
(1,0)
pixel colour = f(x, y)
x-axis
6
Image “Composition”
x
f(x, y) g(x, y)
=
f(x, y) * g(x, y)
The Big Idea: Use a functional language to compose images!
7
Contents
1. Procedural Content Generation
2. Introducing Clojure
3. Creating content with Clisk
8
What is Clojure?
JVM Language
Functional Dynamic
9
Data types – The Usual
Type Representation
Long integers 42
Double precision reals 3.14159265359
Strings “Hello World”
Characters M
Hex 0xFF8000
All represented by equivalent Java
Objects “under the hood”
10
Data types – The Not-So Usual
Type Representation
Keywords :foo
Symbols 'hello
Ratios 1/3
Regexes #"[0-9]+"
BigInt 15511210043330985984000000N
BigDecimal 189675.1678969698698969986M
Base-N numbers 3r1201200
11
Data types – Collections
Type Representation
Maps {:foo 10
:bar 20}
Sets #{2 3 5 7 11 13}
Vectors [1 2 3 :foo]
Lists '(foo a b c)
All collections in Clojure are Immutable!
12
Lisp = “Lots of Irritating Silly Parentheses”?
myfunction(alpha, beta)C-like languages
(myfunction alpha beta)Lisp
Usually the same number of parentheses!
13
Expressions
Function
application
=> (+ 11 31)
42
Nested
Expressions
=> (+ 11 (* 30 30))
911
Local definitions
=> (let [x 11]
(* x 100))
1100
14
Functions
Function definition
=> (defn triple [x]
(* x 3))
=> (triple 10)
30
Higher order
functions
=> (map triple [1 2 3])
(3 6 9)
15
“Code is Data”
=> (+ 2 3)
5
=> '(+ 2 3)
(+ 2 3)
=> (eval '(+ 2 3))
5
16
Java Interop
Java myObject.doSomething(foo, bar);
Clojure (.doSomething myObject foo bar)
17
Contents
1. Procedural Content Generation
2. Introducing Clojure
3. Creating content with Clisk
18
https://github.com/mikera/clisk
To follow along:
- Clone the repo at: https://github.com/mikera/clisk
- All examples are in: src/test/clojure/clisk/workshop/
19
Collaborative spirit – all about sharing!
Open Source Project
Open Source Language
Open Source content “Recipes”
20
Example from “TweeGeeMee”
https://twitter.com/tweegeemee/status/676985464813953029
21
@TweeGeeMee twitter bot by Roger Allen
@TweeGeeMee evolved images
22
Example from “Clevolution”
https://twitter.com/deathbob/status/661294702759669760
23
Image Generation
(0,0)
y-axis
(0,1) (1,1)
(1,0)
pixel colour = [x 0 0]
x-axis
REPL
Command
(show [x 0 0])
24
Image Generation
(0,0)
y-axis
(0,1) (1,1)
(1,0)
pixel colour = [x y 0]
x-axis
REPL
Command
(show [x y 0])
25
Implementation notes
• Clisk functions actually generate ASTs
• “show” function compiles the AST into efficient low-
level code, something like*:
• Lisp makes this (comparatively) easy!
This is very simplified! The real compiled code includes support for multi-threading,
caching of texture objects, making use of fast primitive maths etc.
*
(dotimes [y height]
(dotimes [x width]
(let [colour ....calculation code....]
(.setRGB image x y colour))))
26
Many primitives
Solid colours (show [0.1 0.7 1.0])
Patterns (show (checker red pink))
Texture maps (show clojure)
27
Transformations - scaling
Base (show (checker red pink))
Scaled
(show
(scale 0.3
(checker red pink)))
28
Transformations – offsets
Base (show (checker red pink))
Offset
(show
(offset
[0.2 0.2]
(checker red pink)))
29
Transformations – warps
Base (show (checker red pink))
Warped
(show
(warp
(scale 0.2 vnoise)
(checker red pink)))
30
Noise functions
Monochomatic
noise
(show (scale 0.2 noise))
Vector noise (show (scale 0.2 vnoise))
Plasma (show (scale 0.2 plasma))
31
Live coding time!
32
Images from the Gallery: Stained Glass
(show (let [voronoi1 (voronoi :points 512)]
(v*
(v* 20.0 (voronoi-blocks :voronoi voronoi1))
(warp (voronoi-points :voronoi voronoi1) grain)))
:size 512)
Key techniques:
• Use a Voronoi map to create “cells”
• Multiply with the psuedo-random “grain” function to colour cells
33
Images from the Gallery: Mandelbrot
(show (viewport [-2 -1.5] [1 1.5]
(fractal
:while (v- 2 (length [x y]))
:update (v+ c [(v- (v* x x) (v* y y))
(v* 2 x y)])
:result (vplasma (v* 0.1 'i))
:bailout-result black
:max-iterations 1000)) :size 256)
Key techniques:
• Use the “fractal” function to create an iterative process
• Simulate complex numbers (x+ iy) using regular clisk vectors
• Use a viewport to see the relevant region of the Mandelbrot set
34
Images from the Gallery: Voronoi Fractal
(show (let [voronoi1 (voronoi :points 32)]
(fractal
:while (v- 0.97 (voronoi-function
(v- 1 (v* (vdivide (v- y x) y)
(vdivide (v- z x) z)))
:voronoi voronoi1))
:update (v+ (v* pos 2) pos)
:result (vdivide 3 (v+ 3 'i))
:max-iterations 4)) :size 512)
Key techniques:
• Voronoi map used to create a “net” pattern
• Use the “fractal” function to create iterative layers
• If it hits the net, stop
• Else continue to next layer with a scaled version of the net
3535
BACKUP / OUT

Weitere ähnliche Inhalte

Was ist angesagt?

The Ring programming language version 1.7 book - Part 39 of 196
The Ring programming language version 1.7 book - Part 39 of 196The Ring programming language version 1.7 book - Part 39 of 196
The Ring programming language version 1.7 book - Part 39 of 196Mahmoud Samir Fayed
 
Coscup2021-rust-toturial
Coscup2021-rust-toturialCoscup2021-rust-toturial
Coscup2021-rust-toturialWayne Tsai
 
Coscup2021 - useful abstractions at rust and it's practical usage
Coscup2021 - useful abstractions at rust and it's practical usageCoscup2021 - useful abstractions at rust and it's practical usage
Coscup2021 - useful abstractions at rust and it's practical usageWayne Tsai
 
Thinking Functionally In Ruby
Thinking Functionally In RubyThinking Functionally In Ruby
Thinking Functionally In RubyRoss Lawley
 
Python 2.5 reference card (2009)
Python 2.5 reference card (2009)Python 2.5 reference card (2009)
Python 2.5 reference card (2009)gekiaruj
 
The Ring programming language version 1.6 book - Part 32 of 189
The Ring programming language version 1.6 book - Part 32 of 189The Ring programming language version 1.6 book - Part 32 of 189
The Ring programming language version 1.6 book - Part 32 of 189Mahmoud Samir Fayed
 
Compact and safely: static DSL on Kotlin
Compact and safely: static DSL on KotlinCompact and safely: static DSL on Kotlin
Compact and safely: static DSL on KotlinDmitry Pranchuk
 
R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011Mandi Walls
 
Rainer Grimm, “Functional Programming in C++11”
Rainer Grimm, “Functional Programming in C++11”Rainer Grimm, “Functional Programming in C++11”
Rainer Grimm, “Functional Programming in C++11”Platonov Sergey
 
Bartosz Milewski, “Re-discovering Monads in C++”
Bartosz Milewski, “Re-discovering Monads in C++”Bartosz Milewski, “Re-discovering Monads in C++”
Bartosz Milewski, “Re-discovering Monads in C++”Platonov Sergey
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine LearningBig_Data_Ukraine
 
The Ring programming language version 1.4.1 book - Part 7 of 31
The Ring programming language version 1.4.1 book - Part 7 of 31The Ring programming language version 1.4.1 book - Part 7 of 31
The Ring programming language version 1.4.1 book - Part 7 of 31Mahmoud Samir Fayed
 
Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Leonardo Borges
 
The Ring programming language version 1.9 book - Part 46 of 210
The Ring programming language version 1.9 book - Part 46 of 210The Ring programming language version 1.9 book - Part 46 of 210
The Ring programming language version 1.9 book - Part 46 of 210Mahmoud Samir Fayed
 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)jaxLondonConference
 
미려한 UI/UX를 위한 여정
미려한 UI/UX를 위한 여정미려한 UI/UX를 위한 여정
미려한 UI/UX를 위한 여정SeungChul Kang
 
The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189Mahmoud Samir Fayed
 
Python Cheat Sheet
Python Cheat SheetPython Cheat Sheet
Python Cheat SheetGlowTouch
 

Was ist angesagt? (20)

The Ring programming language version 1.7 book - Part 39 of 196
The Ring programming language version 1.7 book - Part 39 of 196The Ring programming language version 1.7 book - Part 39 of 196
The Ring programming language version 1.7 book - Part 39 of 196
 
Coscup2021-rust-toturial
Coscup2021-rust-toturialCoscup2021-rust-toturial
Coscup2021-rust-toturial
 
Coscup2021 - useful abstractions at rust and it's practical usage
Coscup2021 - useful abstractions at rust and it's practical usageCoscup2021 - useful abstractions at rust and it's practical usage
Coscup2021 - useful abstractions at rust and it's practical usage
 
Thinking Functionally In Ruby
Thinking Functionally In RubyThinking Functionally In Ruby
Thinking Functionally In Ruby
 
Python 2.5 reference card (2009)
Python 2.5 reference card (2009)Python 2.5 reference card (2009)
Python 2.5 reference card (2009)
 
The Ring programming language version 1.6 book - Part 32 of 189
The Ring programming language version 1.6 book - Part 32 of 189The Ring programming language version 1.6 book - Part 32 of 189
The Ring programming language version 1.6 book - Part 32 of 189
 
Compact and safely: static DSL on Kotlin
Compact and safely: static DSL on KotlinCompact and safely: static DSL on Kotlin
Compact and safely: static DSL on Kotlin
 
R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011
 
Rainer Grimm, “Functional Programming in C++11”
Rainer Grimm, “Functional Programming in C++11”Rainer Grimm, “Functional Programming in C++11”
Rainer Grimm, “Functional Programming in C++11”
 
Bartosz Milewski, “Re-discovering Monads in C++”
Bartosz Milewski, “Re-discovering Monads in C++”Bartosz Milewski, “Re-discovering Monads in C++”
Bartosz Milewski, “Re-discovering Monads in C++”
 
Nx tutorial basics
Nx tutorial basicsNx tutorial basics
Nx tutorial basics
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
The Ring programming language version 1.4.1 book - Part 7 of 31
The Ring programming language version 1.4.1 book - Part 7 of 31The Ring programming language version 1.4.1 book - Part 7 of 31
The Ring programming language version 1.4.1 book - Part 7 of 31
 
Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015
 
The Ring programming language version 1.9 book - Part 46 of 210
The Ring programming language version 1.9 book - Part 46 of 210The Ring programming language version 1.9 book - Part 46 of 210
The Ring programming language version 1.9 book - Part 46 of 210
 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)
 
미려한 UI/UX를 위한 여정
미려한 UI/UX를 위한 여정미려한 UI/UX를 위한 여정
미려한 UI/UX를 위한 여정
 
The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189
 
JDBC Core Concept
JDBC Core ConceptJDBC Core Concept
JDBC Core Concept
 
Python Cheat Sheet
Python Cheat SheetPython Cheat Sheet
Python Cheat Sheet
 

Andere mochten auch

Clojure for Java developers
Clojure for Java developersClojure for Java developers
Clojure for Java developersJohn Stevenson
 
Sharepoint - turn on or turn off?
Sharepoint - turn on or turn off?Sharepoint - turn on or turn off?
Sharepoint - turn on or turn off?Workshare
 
TLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸ
TLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸTLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸ
TLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸAppointmentPlus
 
Accolo - Turn your company into a hiring machine - 3-22-12 - John Younger
Accolo - Turn your company into a hiring machine - 3-22-12 - John YoungerAccolo - Turn your company into a hiring machine - 3-22-12 - John Younger
Accolo - Turn your company into a hiring machine - 3-22-12 - John YoungerJohn Younger
 
How I learned to love the Process
How I learned to love the ProcessHow I learned to love the Process
How I learned to love the ProcessCodeship
 
Marketing To Asian Women Conference Singapore
Marketing To Asian Women Conference SingaporeMarketing To Asian Women Conference Singapore
Marketing To Asian Women Conference SingaporeOne9Ninety
 
Is PPM Enough?
Is PPM Enough?Is PPM Enough?
Is PPM Enough?Digite Inc
 
EuroCloud Netherlands Launch
EuroCloud Netherlands LaunchEuroCloud Netherlands Launch
EuroCloud Netherlands LaunchJan Aleman
 
4 habilidades de un líder
4 habilidades de un líder4 habilidades de un líder
4 habilidades de un líderSafi
 
Applicant Tracking System - LetmeRecruit
Applicant Tracking System - LetmeRecruitApplicant Tracking System - LetmeRecruit
Applicant Tracking System - LetmeRecruitLetmeRecruit
 
Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)
Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)
Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)IT Showoff
 
10 Must Haves in an Effective Recurring Revenue Management Solution
10 Must Haves in an Effective Recurring Revenue Management Solution10 Must Haves in an Effective Recurring Revenue Management Solution
10 Must Haves in an Effective Recurring Revenue Management SolutionAria Systems, Inc.
 
Navantis & Microsoft "Find Your Silver Lining in the Cloud" Event Slidedeck
Navantis & Microsoft "Find Your Silver Lining in the Cloud" Event SlidedeckNavantis & Microsoft "Find Your Silver Lining in the Cloud" Event Slidedeck
Navantis & Microsoft "Find Your Silver Lining in the Cloud" Event SlidedeckNavantis
 
Stamplay 101
Stamplay 101Stamplay 101
Stamplay 101Stamplay
 

Andere mochten auch (20)

Clojure for Java developers
Clojure for Java developersClojure for Java developers
Clojure for Java developers
 
Mrjoby
MrjobyMrjoby
Mrjoby
 
16th ALUMNI LEADERSHIP MASTERCLASS
16th ALUMNI LEADERSHIP MASTERCLASS16th ALUMNI LEADERSHIP MASTERCLASS
16th ALUMNI LEADERSHIP MASTERCLASS
 
SkillPoint™ VRx Recruiting Software
SkillPoint™ VRx Recruiting SoftwareSkillPoint™ VRx Recruiting Software
SkillPoint™ VRx Recruiting Software
 
Sharepoint - turn on or turn off?
Sharepoint - turn on or turn off?Sharepoint - turn on or turn off?
Sharepoint - turn on or turn off?
 
TLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸ
TLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸTLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸ
TLS 1.2 Internet Security Protocol: What it Means & Why You Should Give a ¢®@ϸ
 
Accolo - Turn your company into a hiring machine - 3-22-12 - John Younger
Accolo - Turn your company into a hiring machine - 3-22-12 - John YoungerAccolo - Turn your company into a hiring machine - 3-22-12 - John Younger
Accolo - Turn your company into a hiring machine - 3-22-12 - John Younger
 
How I learned to love the Process
How I learned to love the ProcessHow I learned to love the Process
How I learned to love the Process
 
Marketing To Asian Women Conference Singapore
Marketing To Asian Women Conference SingaporeMarketing To Asian Women Conference Singapore
Marketing To Asian Women Conference Singapore
 
Is PPM Enough?
Is PPM Enough?Is PPM Enough?
Is PPM Enough?
 
EuroCloud Netherlands Launch
EuroCloud Netherlands LaunchEuroCloud Netherlands Launch
EuroCloud Netherlands Launch
 
4 habilidades de un líder
4 habilidades de un líder4 habilidades de un líder
4 habilidades de un líder
 
Applicant Tracking System - LetmeRecruit
Applicant Tracking System - LetmeRecruitApplicant Tracking System - LetmeRecruit
Applicant Tracking System - LetmeRecruit
 
Advanced Recurring Contract Billing
Advanced Recurring Contract Billing Advanced Recurring Contract Billing
Advanced Recurring Contract Billing
 
Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)
Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)
Igor Vuksanović - Kako bankrotirati pri izradi poslovne aplikacije (IT Showoff)
 
10 Must Haves in an Effective Recurring Revenue Management Solution
10 Must Haves in an Effective Recurring Revenue Management Solution10 Must Haves in an Effective Recurring Revenue Management Solution
10 Must Haves in an Effective Recurring Revenue Management Solution
 
Navantis & Microsoft "Find Your Silver Lining in the Cloud" Event Slidedeck
Navantis & Microsoft "Find Your Silver Lining in the Cloud" Event SlidedeckNavantis & Microsoft "Find Your Silver Lining in the Cloud" Event Slidedeck
Navantis & Microsoft "Find Your Silver Lining in the Cloud" Event Slidedeck
 
Imex Smart Cities
Imex Smart CitiesImex Smart Cities
Imex Smart Cities
 
Bim advancements
Bim advancementsBim advancements
Bim advancements
 
Stamplay 101
Stamplay 101Stamplay 101
Stamplay 101
 

Ähnlich wie Procedural Content Generation with Clojure

(Fun clojure)
(Fun clojure)(Fun clojure)
(Fun clojure)Timo Sulg
 
A gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojureA gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojurePaul Lam
 
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
[PR12] You Only Look Once (YOLO): Unified Real-Time Object DetectionTaegyun Jeon
 
Rust tutorial from Boston Meetup 2015-07-22
Rust tutorial from Boston Meetup 2015-07-22Rust tutorial from Boston Meetup 2015-07-22
Rust tutorial from Boston Meetup 2015-07-22nikomatsakis
 
Web 2 . .3 Development Services
Web 2 . .3 Development ServicesWeb 2 . .3 Development Services
Web 2 . .3 Development ServicesTheawaster485
 
Minecraft in 500 lines with Pyglet - PyCon UK
Minecraft in 500 lines with Pyglet - PyCon UKMinecraft in 500 lines with Pyglet - PyCon UK
Minecraft in 500 lines with Pyglet - PyCon UKRichard Donkin
 
Rust "Hot or Not" at Sioux
Rust "Hot or Not" at SiouxRust "Hot or Not" at Sioux
Rust "Hot or Not" at Siouxnikomatsakis
 
Rust: Reach Further
Rust: Reach FurtherRust: Reach Further
Rust: Reach Furthernikomatsakis
 
Learn Python 3 for absolute beginners
Learn Python 3 for absolute beginnersLearn Python 3 for absolute beginners
Learn Python 3 for absolute beginnersKingsleyAmankwa
 
Python in 30 minutes!
Python in 30 minutes!Python in 30 minutes!
Python in 30 minutes!Fariz Darari
 
Web 2 . 0 .Zero Coding Services
Web 2 . 0 .Zero Coding ServicesWeb 2 . 0 .Zero Coding Services
Web 2 . 0 .Zero Coding ServicesTheawaster485
 
The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 15 of 184
The Ring programming language version 1.5.3 book - Part 15 of 184The Ring programming language version 1.5.3 book - Part 15 of 184
The Ring programming language version 1.5.3 book - Part 15 of 184Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 19 of 202
The Ring programming language version 1.8 book - Part 19 of 202The Ring programming language version 1.8 book - Part 19 of 202
The Ring programming language version 1.8 book - Part 19 of 202Mahmoud Samir Fayed
 
Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Peter Kofler
 

Ähnlich wie Procedural Content Generation with Clojure (20)

We Must Go Deeper
We Must Go DeeperWe Must Go Deeper
We Must Go Deeper
 
(Fun clojure)
(Fun clojure)(Fun clojure)
(Fun clojure)
 
A gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojureA gentle introduction to functional programming through music and clojure
A gentle introduction to functional programming through music and clojure
 
Three.js basics
Three.js basicsThree.js basics
Three.js basics
 
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
 
Rust tutorial from Boston Meetup 2015-07-22
Rust tutorial from Boston Meetup 2015-07-22Rust tutorial from Boston Meetup 2015-07-22
Rust tutorial from Boston Meetup 2015-07-22
 
Web 2 . .3 Development Services
Web 2 . .3 Development ServicesWeb 2 . .3 Development Services
Web 2 . .3 Development Services
 
Minecraft in 500 lines with Pyglet - PyCon UK
Minecraft in 500 lines with Pyglet - PyCon UKMinecraft in 500 lines with Pyglet - PyCon UK
Minecraft in 500 lines with Pyglet - PyCon UK
 
Rust "Hot or Not" at Sioux
Rust "Hot or Not" at SiouxRust "Hot or Not" at Sioux
Rust "Hot or Not" at Sioux
 
LCS35
LCS35LCS35
LCS35
 
Rust: Reach Further
Rust: Reach FurtherRust: Reach Further
Rust: Reach Further
 
Learn Python 3 for absolute beginners
Learn Python 3 for absolute beginnersLearn Python 3 for absolute beginners
Learn Python 3 for absolute beginners
 
Python in 30 minutes!
Python in 30 minutes!Python in 30 minutes!
Python in 30 minutes!
 
3D everywhere
3D everywhere3D everywhere
3D everywhere
 
Web 2 . 0 .Zero Coding Services
Web 2 . 0 .Zero Coding ServicesWeb 2 . 0 .Zero Coding Services
Web 2 . 0 .Zero Coding Services
 
The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212
 
The Ring programming language version 1.5.3 book - Part 15 of 184
The Ring programming language version 1.5.3 book - Part 15 of 184The Ring programming language version 1.5.3 book - Part 15 of 184
The Ring programming language version 1.5.3 book - Part 15 of 184
 
OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)
 
The Ring programming language version 1.8 book - Part 19 of 202
The Ring programming language version 1.8 book - Part 19 of 202The Ring programming language version 1.8 book - Part 19 of 202
The Ring programming language version 1.8 book - Part 19 of 202
 
Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)
 

Kürzlich hochgeladen

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Kürzlich hochgeladen (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Procedural Content Generation with Clojure