TurboWarp requires JavaScript
Consider using
TurboWarp Desktop
if you are afraid of remote JavaScript.
Something went wrong.
Please report
with the information below.
Click here to reset caches (can fix some errors)
Settings
File
Edit
Addons
Advanced
See Project Page
TurboWarp Feedback
Save to your computer
Code
Costumes
Sounds
Motion
Looks
Sound
Events
Control
Sensing
Operators
Variables
My Blocks
Simple 3D
0
0
0
1
plane
plane
plane
plane
grid
texture from costume
plane
plane
16
box
box
box
box
box
triangle strip
box
box
texture from costume
box
0.1
90
0.01
1000
controls
color and depth
draw plane
draw boxes
configure
to world space from model space
transformation
clear
forever
start with perspective FOV:
near:
far:
configure
to projected from view space
transformation
set
discard pixels less opaque than
, for those that pass
make opaque
set
texture
clamp to edge
pixelated
set
primitives
set
texture coordinates UV
boxU
boxV
set
positions XYZ
boxX
boxY
boxZ
set
vertex indices
boxIdx
create mesh
set
texture anisotropic filtering
set
texture mipmapping
smooth transitions
set
texture
repeat
pixelated
set
texture coordinates UV
planeU
planeV
set
positions XY
planeX
planeY
create mesh
set clear color R:
G:
B:
A:
when
clicked
controls
mouse y
0
mouse x
-
0
camRotX
-
0
camRotY
-
d
key
pressed?
a
key
pressed?
-
0
s
key
pressed?
w
key
pressed?
-
transformed
X
transformed
Y
transformed
Z
0
camX
-
0
camY
-
0
camZ
-
move X:
Y:
Z:
change
camZ
by
change
camY
by
change
camX
by
transform direction X:
Y:
Z:
from
view space
to
world space
rotate around
Y
by
degrees
rotate around
X
by
degrees
start with no transformation
configure
to view space from world space
transformation
set
camRotY
to
set
camRotX
to
define
90
0.01
1000
start with perspective FOV:
near:
far:
configure
to projected from view space
transformation
when resolution changes
draw plane
90
100
100
100
plane
draw mesh
scale X:
Y:
Z:
rotate around
X
by
degrees
start with no transformation
define
draw boxes
timer
-8
2.05
-16
35
2
2
2
box
draw mesh
scale X:
Y:
Z:
rotate around
Y
by
degrees
move X:
Y:
Z:
32
4.05
7
-10
4
4
4
box
draw mesh
scale X:
Y:
Z:
rotate around
Y
by
degrees
move X:
Y:
Z:
wrapper
wrapper
rotate around
Y
by
degrees
start with no transformation
define
controls (6 directions)
mouse y
0
mouse x
-
0
camRotY
-
d
key
pressed?
a
key
pressed?
-
space
key
pressed?
shift
join
key
pressed?
-
s
key
pressed?
w
key
pressed?
-
transformed
X
transformed
Y
transformed
Z
0
camRotX
-
0
camRotY
-
0
camX
-
0
camY
-
0
camZ
-
move X:
Y:
Z:
rotate around
Y
by
degrees
rotate around
X
by
degrees
start with no transformation
change
camZ
by
change
camY
by
change
camX
by
transform direction X:
Y:
Z:
from
view space
to
world space
rotate around
Y
by
degrees
start with no transformation
configure
to view space from world space
transformation
set
camRotY
to
set
camRotX
to
define
To properly …
Or you can j…
This block i…
next backdrop
25
change
color
effect by
0
set
color
effect to
clear graphic effects
backdrop
number
stop all sounds
10
change
pitch
effect by
100
set
pitch
effect to
clear sound effects
-10
change volume by
100
set volume to
%
when
clicked
when
space
key pressed
10
when
loudness
>
1
wait
seconds
10
repeat
forever
if
then
if
then
else
wait until
repeat until
while
answer
space
key
pressed?
mouse down?
mouse x
mouse y
loudness
timer
reset timer
current
year
days since 2000
username
+
-
*
/
1
10
pick random
to
50
>
50
<
50
=
and
or
not
mod
round
abs
of
10
move
steps
15
turn
degrees
15
turn
degrees
random position
go to
0
0
go to x:
y:
1
random position
glide
secs to
1
0
0
glide
secs to x:
y:
90
point in direction
mouse-pointer
point towards
10
change x by
0
set x to
10
change y by
0
set y to
if on edge, bounce
set rotation style
left-right
x position
y position
direction
Hello!
2
say
for
seconds
Hello!
say
Hmm...
2
think
for
seconds
Hmm...
think
uv grid
switch costume to
next costume
backdrop1
switch backdrop to
10
change size by
100
set size to
%
show
hide
go to
front
layer
1
go
forward
layers
costume
number
size
play sound
until done
start sound
volume
when this sprite clicked
when backdrop switches to
backdrop1
when I receive
message1
message1
broadcast
message1
broadcast
and wait
stop
all
when I start as a clone
myself
create clone of
delete this clone
mouse-pointer
touching
?
touching color
?
color
is touching
?
mouse-pointer
distance to
What's your name?
ask
and wait
set drag mode
draggable
Stage
backdrop #
of
apple
banana
join
1
apple
letter
of
apple
length of
apple
a
contains
?
camRotX
camRotY
camX
camY
camZ
0
set
camRotX
to
1
change
camRotX
by
show variable
camRotX
hide variable
camRotX
boxIdx
boxU
boxV
boxX
boxY
boxZ
planeU
planeV
planeX
planeY
thing
add
to
boxIdx
1
delete
of
boxIdx
delete all of
boxIdx
1
thing
insert
at
of
boxIdx
1
thing
replace item
of
boxIdx
with
1
item
of
boxIdx
thing
item # of
in
boxIdx
length of
boxIdx
thing
boxIdx
contains
?
show list
boxIdx
hide list
boxIdx
controls
controls (6 directions)
draw boxes
draw plane
reset everything
color and depth
clear
0.5
0.5
0.5
1
set clear color R:
G:
B:
A:
closer
on
depth test
write
all meshes
my mesh
create mesh
my mesh
delete mesh
my mesh 3
my mesh 1,my mesh 2
make
inherit from meshes
my mesh
mesh
inherits from
my mesh
set
vertex indices
boxIdx
my mesh
set
positions XY
boxIdx
boxIdx
my mesh
set
positions XYZ
boxIdx
boxIdx
boxIdx
my mesh
set
colors RGB
boxIdx
boxIdx
boxIdx
my mesh
set
colors RGBA
boxIdx
boxIdx
boxIdx
boxIdx
my mesh
set
texture coordinates UV
boxIdx
boxIdx
my mesh
set
texture
clamp to edge
pixelated
my mesh
set
cube texture coordinates UVW
boxIdx
boxIdx
boxIdx
my mesh
X+
set
cube texture
clamp to edge
pixelated
my mesh
set
texture mipmapping
off
my mesh
16
set
texture anisotropic filtering
my mesh
3
set
bone indices
boxIdx
weights
boxIdx
count per vertex
my mesh
original
set
transforms
boxIdx
my mesh
set
interleaved
XY positions
boxIdx
my mesh
set
instance
transforms
boxIdx
my mesh
1
set
list update offset
my mesh
rarely
set
optimize next uploaded lists for being
updated
my mesh
set
from
obj mtl
boxIdx
my mesh
points
set
primitives
my mesh
default
set
blending
my mesh
nothing
set
cull
my mesh
0.5
set
discard pixels less opaque than
, for those that pass
make opaque
my mesh
on
set
billboarding
my mesh
once at pixel center
set
compute color
my mesh
1
6
set
vertex draw range from
to
my mesh
10
set
instance draw limit
my mesh
0
0
set
texture coordinate offset UV
my mesh
draw mesh
https://extensions.turbowarp.org/dango.png
texture from URL
grid
texture from costume
Hello World!
italic bold 32px sans-serif
texture from text
font
color
Hello World!
italic bold 32px sans-serif
1
texture from text
font
color
border
1
16
16
texture from list
boxIdx
at
of size
16
16
texture of size
Hello World!
italic bold 32px sans-serif
measure text
font
up
measured
size
32
font
Sans Serif
of size
configure
to projected from view space
transformation
90
0.1
1000
start with perspective FOV:
near:
far:
0.1
1000
start with orthographic near:
far:
start with no transformation
1
start with saved in
boxIdx
at
0
0
0
move X:
Y:
Z:
0
rotate around
X
by
degrees
1
1
1
scale X:
Y:
Z:
wrapper
1
save into
boxIdx
at
offset
reset transformation's
0
0
0
transform X:
Y:
Z:
0
0
0
transform X:
Y:
Z:
from
world space
to
model space
0
0
0
transform direction X:
Y:
Z:
from
world space
to
model space
transformed
X
render to stage
my mesh
render to texture of
X+
my mesh
render to cube texture
of
read current render target into
boxIdx
render target
width
0
0
100
100
set
viewport box
to X1:
Y1:
X2:
Y2:
clear
viewport box
1
1
1
1
set global color
multiplier
R:
G:
B:
A:
on
turn fog
1
1
1
set fog color R:
G:
B:
10
100
set fog distance near:
far:
0
0
0
set fog
view space
origin at X:
Y:
Z:
when resolution changes
stage width
stage height
Motion
Looks
Sound
Events
Control
Sensing
Operators
Variables
Make a Variable
Make a List
My Blocks
Make a Block
Simple 3D
Open Documentation
Open extra resources
Open sample project
Clearing
Meshes
Textures
Text measurement
Fonts
View transformations
Manual transformations
Rendering into textures
Tinting and fog
Resolution changes
Backpack
Sprite
x
y
Show
Size
Direction
Sprite1
duplicate
export
delete
Stage
Backdrops
1