Skip to content

Instantly share code, notes, and snippets.

@avik-pal

avik-pal/Manifest.toml

Last active Jun 7, 2019
Embed
What would you like to do?
] activate .
using RayTracer, Images, Flux, Zygote, Statistics
using RayTracer: improcess
screen_size = (w = 128, h = 128)
light = DistantLight(Vec3(1.0f0), 100.0f0, Vec3(0.0f0, 1.0f0, 0.0f0))
scene = [
SimpleSphere(Vec3(0.0f0, -99999.5f0, 0.0f0), 99999.0f0, color = Vec3(0.0f0, 1.0f0, 0.0f0)),
Triangle(Vec3(-1.0f0, 0.49f0, -110.0f0), Vec3(-1.0f0, 0.49f0, 110.0f0), Vec3(1.0f0, 0.49f0, -110.0f0),
color = Vec3(0.2f0, 0.0f0, 0.1f0)),
Triangle(Vec3(1.0f0, 0.49f0, 110.0f0), Vec3(-1.0f0, 0.49f0, 110.0f0), Vec3(1.0f0, 0.49f0, -110.0f0),
color = Vec3(0.2f0, 0.0f0, 0.1f0)),
]
# pos -> (pos_x, pos_z)
# angle -> [angle wrt forward direction]
function renderEnv(pos, angle, l)
pos_x, pos_z = pos
lookfrom1 = Vec3(pos_x, [0.0f0], pos_z)
lookat_x1 = (@. Float32(sin(deg2rad(angle))) + pos_x)
lookat_z1 = (@. Float32(cos(deg2rad(angle))) + pos_z)
lookat1 = Vec3(lookat_x1, [0.0f0], lookat_z1)
cam1 = Camera(lookfrom1, lookat1, Vec3([0.0f0], [1.0f0], [0.0f0]), 10.0f0, 1.0f0, screen_size...)
origin1, direction1 = get_primary_rays(cam1)
im1 = raytrace(origin1, direction1, scene, light, origin1, 2)
color_r = improcess(im1.x, screen_size...)
color_g = improcess(im1.y, screen_size...)
color_b = improcess(im1.z, screen_size...)
im_arr1 = zeroonenorm(reshape(hcat(color_r, color_g, color_b), screen_size..., 3, 1))
return im_arr1
end
colorview(RGB, permutedims(renderEnv(([0.0f0], [90.0f0]), [0.0f0], 0.2f0)[:, :, :, 1], (3, 2, 1)))
function _update_pos(posi, angle_arr, wheel_dist, wheelVels, deltaTime)
angle = angle_arr[1]
pos = (posi[1][1], posi[2][1])
Vl, Vr = wheelVels[:, 1]
l = wheel_dist
# If the wheel velocities are the same, then there is no rotation
if Vl == Vr
pos = pos .+ (deltaTime * Vl) .* (Float32(sin(deg2rad(angle))), Float32(cos(deg2rad(angle))))
return ([pos[1]], [pos[2]]), [angle]
end
# Compute the angular rotation velocity about the ICC (center of curvature)
w = (Vr - Vl) / l
# Compute the distance to the center of curvature
r = (l * (Vl + Vr)) / (2(Vr - Vl))
# Compute the rotation angle for this time step
rotAngle = w * deltaTime
# Rotate the robot's position around the center of rotation
r_vec_x = Float32(cos(deg2rad(angle)))
r_vec_z = -Float32(sin(deg2rad(angle)))
px, pz = pos[1], pos[2]
cx = px + r * r_vec_x
cz = pz + r * r_vec_z
dx = px - cx
dz = pz - cz
new_dx = dx * Float32(cos(deg2rad(rotAngle))) + dz * Float32(sin(deg2rad(rotAngle)))
new_dz = dz * Float32(cos(deg2rad(rotAngle))) - dx * Float32(sin(deg2rad(rotAngle)))
pos = ([cx + new_dx], [cz + new_dz])
# Update the robot's direction angle
angle = (angle + rotAngle)
return pos, [angle % 360]
end
# pos -> (pos_x, pos_z)
# angle -> (angle wrt forward direction)
function reward(pos, pangle_arr, angle_arr, len, pvel, vel)
angle = angle_arr[1]
pangle = pangle_arr[1]
pos_x, pos_z = pos[1][1], pos[2][1]
rwd = 0.0f0
mean_vel = mean(vel)
mean_pvel = mean(pvel)
# Proximality Reward
rwd -= abs(pos_x)
# Direction Penalty
rwd += (2.0f0 * sigmoid(mean_vel) - 1.0f0) * Float32(cos(deg2rad(angle)))
return rwd
end
function reward(pos, len)
pos_x, pos_z = pos[1][1], pos[2][1]
rwd = 0.0f0
# Penalize for hitting
if pos_x + len / 2.0f0 > 1.0f0
rwd -= 10.0f0 * (pos_x + len / 2.0f0)
end
if pos_x - len / 2.0f0 < -1.0f0
rwd += 10.0f0 * (pos_x - len / 2.0f0)
end
return rwd
end
mutable struct State
velo
angle
pos
complete
end
function update_state!(s::State, v, a, p, b::Bool = false)
s.velo = v
s.angle = a
s.pos = p
s.complete = b
end
Zygote.@nograd update_state!
function episode(model, s::State, l, frames, tstep)
initial_velo = s.velo
initial_angle = s.angle
initial_pos = s.pos
prev_velo = initial_velo
new_velo = initial_velo
new_angle = initial_angle
prev_angle = initial_angle
new_pos = initial_pos
prev_pos = initial_pos
len = l
loss = 0
for frames in 1:frames
new_pos, new_angle = _update_pos(prev_pos, prev_angle, len, prev_velo, tstep)
# If leaving road push it back in
loss = loss - reward(new_pos, len)
new_pos = (clamp.(new_pos[1], -1.0f0 + l / 2.0f0, 1.0f0 - l / 2.0f0),
clamp.(new_pos[2], -100.0f0, Inf32))
if new_pos[2][1] >= 100.0f0
update_state!(s, [0.0f0, 0.0f0], [0.0f0], ([0.0f0], [0.0f0]), true)
return loss
end
env = renderEnv(new_pos, new_angle, len)
new_velo = model(env) #.* 50.0f0
# @show new_velo, new_pos, new_angle
loss = loss - reward(new_pos, prev_angle, new_angle, l, prev_velo, new_velo)
# new_velo = clamp.(new_velo, -50.0f0, 50.0f0)
prev_pos = new_pos
prev_angle = new_angle
prev_velo = new_velo
end
@show loss
update_state!(s, new_velo, new_angle, new_pos, false)
return loss
end
Zygote.refresh()
model = Chain(
Conv((3, 3), 3=>8, relu, pad = 1),
MaxPool((2, 2)),
Conv((3, 3), 8=>16, relu, pad = 1),
MaxPool((2, 2)),
Conv((3, 3), 16=>32, relu, pad = 1),
x -> reshape(x, :, 1),
Dense((32 * 32 * 32), 64, relu),
Dense(64, 16, relu),
Dense(16, 2),
x -> reshape(x, 2))
opt = ADAM(0.0003)
for ep in 1:10
@info "Episode $ep"
try
state = State([0.0f0, 0.0f0], [0.0f0], ([0.0f0], [0.0f0]), false)
dur = 0.01f0
len = 0.5f0
for iter in 1:100
@show state
gs = Zygote.gradient(params(model)) do
episode(model, state, len, 5, dur)
end
for arr in params(model)
Flux.Optimise.update!(opt, arr, gs[arr])
end
if iter % 10 == 0
@info "Subepisode $iter"
end
state.complete && break
end
@info "Episode Completed"
catch x
if isa(x, InterruptException)
throw(x)
end
@info x
continue
end
end
using BSON
BSON.@save "sdcar_straight_road_final.bson" model
function episode_render(model, s::State, l, frames, tstep)
initial_velo = s.velo
initial_angle = s.angle
initial_pos = s.pos
prev_velo = initial_velo
new_velo = initial_velo
new_angle = initial_angle
prev_angle = initial_angle
new_pos = initial_pos
prev_pos = initial_pos
len = l
env = renderEnv(new_pos, new_angle, len)
for frames in 1:frames
new_pos, new_angle = _update_pos(prev_pos, prev_angle, len, prev_velo, tstep)
# If leaving road push it back in
new_pos = (clamp.(new_pos[1], -1.0f0 + l / 2.0f0, 1.0f0 - l / 2.0f0),
clamp.(new_pos[2], -100.0f0, Inf32))
if new_pos[2][1] >= 100.0f0
update_state!(s, [0.0f0, 0.0f0], [0.0f0], ([0.0f0], [0.0f0]), true)
return nothing
end
env = renderEnv(new_pos, new_angle, len)
new_velo = model(env)
# @show new_velo, new_pos, new_angle
prev_pos = new_pos
prev_angle = new_angle
prev_velo = new_velo
end
img = colorview(RGB, permutedims(env[:, :, :, 1], (3, 2, 1)))
display(img)
save("renderings2/$(new_pos[2][1]).jpg", img)
update_state!(s, new_velo, new_angle, new_pos, false)
return nothing
end
state = State([randn(Float32), randn(Float32)], [randn(Float32)], ([10.0f0 * randn(Float32)], [10.0f0 * randn(Float32)]), false)
len = 0.5f0
for iter in 1:10000
episode_render(model, state, len, 10, 0.1f0)
if state.complete
@info "Reached EndPoint"
break
end
end
state = State([randn(Float32), randn(Float32)], [randn(Float32)], ([10.0f0 * randn(Float32)], [10.0f0 * randn(Float32)]), false)
len = 0.5f0
for iter in 1:10000
episode(model, state, len, 5, 0.1f0)
@show state
if state.complete
@info "Reached EndPoint"
break
end
end
state = State([randn(Float32), randn(Float32)], [randn(Float32)], ([10.0f0 * randn(Float32)], [10.0f0 * randn(Float32)]), false)
len = 0.5f0
for iter in 1:10000
episode(model, state, len, 5, 0.1f0)
@show state
if state.complete
@info "Reached EndPoint"
break
end
end
# This file is machine-generated - editing it directly is not advised
[[AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "380e36c66edfa099cd90116b24c1ce8cafccac40"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "0.4.1"
[[AbstractTrees]]
deps = ["Markdown", "Test"]
git-tree-sha1 = "6621d9645702c1c4e6970cc6a3eae440c768000b"
uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
version = "0.2.1"
[[Adapt]]
deps = ["LinearAlgebra", "Test"]
git-tree-sha1 = "53d8fec4f662088c1202530e338a11a919407f3b"
uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
version = "0.4.2"
[[AxisAlgorithms]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"]
git-tree-sha1 = "a4d07a1c313392a77042855df46c5f534076fab9"
uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950"
version = "1.0.0"
[[AxisArrays]]
deps = ["Compat", "Dates", "IntervalSets", "IterTools", "Random", "RangeArrays", "Test"]
git-tree-sha1 = "2e2536e9e6f27c4f8d09d8442b61a7ae0b910c28"
uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9"
version = "0.3.0"
[[BSON]]
deps = ["Profile", "Test"]
git-tree-sha1 = "6453cef4f9cb8ded8e28e4d6d12e11e20eb692ea"
uuid = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0"
version = "0.2.3"
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
[[BinDeps]]
deps = ["Compat", "Libdl", "SHA", "URIParser"]
git-tree-sha1 = "12093ca6cdd0ee547c39b1870e0c9c3f154d9ca9"
uuid = "9e28174c-4ba2-5203-b857-d8d62c4213ee"
version = "0.8.10"
[[BinaryProvider]]
deps = ["Libdl", "SHA"]
git-tree-sha1 = "c7361ce8a2129f20b0e05a89f7070820cfed6648"
uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
version = "0.5.4"
[[CSTParser]]
deps = ["LibGit2", "Test", "Tokenize"]
git-tree-sha1 = "437c93bc191cd55957b3f8dee7794b6131997c56"
uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
version = "0.5.2"
[[CatIndices]]
deps = ["CustomUnitRanges", "OffsetArrays", "Test"]
git-tree-sha1 = "254cf73ea369d2e39bfd6c5eb27a2296cfaed68c"
uuid = "aafaddc9-749c-510e-ac4f-586e18779b91"
version = "0.2.0"
[[CodecZlib]]
deps = ["BinaryProvider", "Libdl", "Test", "TranscodingStreams"]
git-tree-sha1 = "36bbf5374c661054d41410dc53ff752972583b9b"
uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
version = "0.5.2"
[[ColorTypes]]
deps = ["FixedPointNumbers", "Random"]
git-tree-sha1 = "10050a24b09e8e41b951e9976b109871ce98d965"
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
version = "0.8.0"
[[ColorVectorSpace]]
deps = ["ColorTypes", "Colors", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "StatsBase"]
git-tree-sha1 = "d626b542f9c3aa22b4f82fe3d36a0ff56fc58601"
uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4"
version = "0.7.0"
[[Colors]]
deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Printf", "Reexport", "Test"]
git-tree-sha1 = "9f0a0210450acb91c730b730a994f8eef1d3d543"
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
version = "0.9.5"
[[CommonSubexpressions]]
deps = ["Test"]
git-tree-sha1 = "efdaf19ab11c7889334ca247ff4c9f7c322817b0"
uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
version = "0.2.0"
[[Compat]]
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
git-tree-sha1 = "84aa74986c5b9b898b0d1acaf3258741ee64754f"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "2.1.0"
[[ComputationalResources]]
deps = ["Test"]
git-tree-sha1 = "89e7e7ed20af73d9f78877d2b8d1194e7b6ff13d"
uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3"
version = "0.3.0"
[[Conda]]
deps = ["Compat", "JSON", "VersionParsing"]
git-tree-sha1 = "b625d802587c2150c279a40a646fba63f9bd8187"
uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d"
version = "1.2.0"
[[CoordinateTransformations]]
deps = ["Compat", "Rotations", "StaticArrays"]
git-tree-sha1 = "47f05d0b7f4999609f92e657147df000818c1f24"
uuid = "150eb455-5306-5404-9cee-2592286d6298"
version = "0.5.0"
[[Crayons]]
deps = ["Test"]
git-tree-sha1 = "f621b8ef51fd2004c7cf157ea47f027fdeac5523"
uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
version = "4.0.0"
[[CustomUnitRanges]]
deps = ["Test"]
git-tree-sha1 = "0a106457a1831555857e18ac9617279c22fc393b"
uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce"
version = "0.2.0"
[[DataStructures]]
deps = ["InteractiveUtils", "OrderedCollections", "Random", "Serialization", "Test"]
git-tree-sha1 = "ca971f03e146cf144a9e2f2ce59674f5bf0e8038"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.15.0"
[[Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
[[DelimitedFiles]]
deps = ["Mmap"]
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
[[DiffResults]]
deps = ["Compat", "StaticArrays"]
git-tree-sha1 = "34a4a1e8be7bc99bc9c611b895b5baf37a80584c"
uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
version = "0.0.4"
[[DiffRules]]
deps = ["Random", "Test"]
git-tree-sha1 = "dc0869fb2f5b23466b32ea799bd82c76480167f7"
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
version = "0.0.10"
[[Distances]]
deps = ["LinearAlgebra", "Printf", "Random", "Statistics", "Test"]
git-tree-sha1 = "a135c7c062023051953141da8437ed74f89d767a"
uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7"
version = "0.8.0"
[[Distributed]]
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
[[FFTViews]]
deps = ["CustomUnitRanges", "FFTW", "Test"]
git-tree-sha1 = "9d7993227ca7c0fdb6b31deef193adbba11c8f4e"
uuid = "4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd"
version = "0.2.0"
[[FFTW]]
deps = ["AbstractFFTs", "BinaryProvider", "Compat", "Conda", "Libdl", "LinearAlgebra", "Reexport", "Test"]
git-tree-sha1 = "29cda58afbf62f35b1a094882ad6c745a47b2eaa"
uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
version = "0.2.4"
[[FileIO]]
deps = ["Pkg", "Random", "Test"]
git-tree-sha1 = "da32159d4a2e526338506685e280e39ed2f18961"
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
version = "1.0.6"
[[FixedPointNumbers]]
git-tree-sha1 = "d14a6fa5890ea3a7e5dcab6811114f132fec2b4b"
uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
version = "0.6.1"
[[Flux]]
deps = ["AbstractTrees", "Adapt", "CodecZlib", "Colors", "DelimitedFiles", "Juno", "LinearAlgebra", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SHA", "Statistics", "StatsBase", "Test", "Tracker", "ZipFile", "Zygote"]
git-tree-sha1 = "6d6c351fd7465cf09e2f16a72865d17d5ad89265"
repo-rev = "sf/zygote_updated"
repo-url = "https://github.com/FluxML/Flux.jl.git"
uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c"
version = "0.8.3"
[[ForwardDiff]]
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "InteractiveUtils", "LinearAlgebra", "NaNMath", "Random", "SparseArrays", "SpecialFunctions", "StaticArrays", "Test"]
git-tree-sha1 = "4c4d727f1b7e0092134fabfab6396b8945c1ea5b"
uuid = "f6369f11-7733-5829-9624-2563aa707210"
version = "0.10.3"
[[GeometryTypes]]
deps = ["ColorTypes", "FixedPointNumbers", "IterTools", "LinearAlgebra", "StaticArrays"]
git-tree-sha1 = "05796e9ac5a8fb8adfdcdf842fb8737d1cb5924e"
uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb"
version = "0.7.4"
[[Graphics]]
deps = ["Colors", "Compat", "NaNMath"]
git-tree-sha1 = "e3ead4211073d4117a0d2ef7d1efc5c8092c8412"
uuid = "a2bd30eb-e257-5431-a919-1863eab51364"
version = "0.4.0"
[[IRTools]]
deps = ["InteractiveUtils", "MacroTools", "Test"]
git-tree-sha1 = "ed5530d6cd0fb9f5223da36f70cf856c04fcbb62"
repo-rev = "5c0d45a33318b472c479f1af5fabc369a4179a45"
repo-url = "https://github.com/MikeInnes/IRTools.jl.git"
uuid = "7869d1d1-7146-5819-86e3-90919afe41df"
version = "0.2.1"
[[IdentityRanges]]
deps = ["OffsetArrays", "Test"]
git-tree-sha1 = "b8c36c6083fd14e2a82c5974225702126e894f23"
uuid = "bbac6d45-d8f3-5730-bfe4-7a449cd117ca"
version = "0.3.0"
[[ImageAxes]]
deps = ["AxisArrays", "Colors", "FixedPointNumbers", "ImageCore", "MappedArrays", "Reexport", "SimpleTraits"]
git-tree-sha1 = "8109bb9a28deca29a5b938ebfa7d0a75319d8776"
uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac"
version = "0.6.0"
[[ImageCore]]
deps = ["ColorTypes", "Colors", "FFTW", "FixedPointNumbers", "Graphics", "MappedArrays", "OffsetArrays", "PaddedViews", "Reexport"]
git-tree-sha1 = "653a098434f6d76fd42796e48c42f2c2c4bd451b"
uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534"
version = "0.8.3"
[[ImageDistances]]
deps = ["ColorVectorSpace", "Colors", "Distances", "FixedPointNumbers", "ImageCore"]
git-tree-sha1 = "aa69ce81260bcb5e950a5e3b48ccca15447c6d8c"
uuid = "51556ac3-7006-55f5-8cb3-34580c88182d"
version = "0.2.4"
[[ImageFiltering]]
deps = ["CatIndices", "ColorVectorSpace", "Colors", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "FixedPointNumbers", "ImageCore", "LinearAlgebra", "MappedArrays", "OffsetArrays", "Requires", "StaticArrays", "Statistics", "TiledIteration"]
git-tree-sha1 = "fbd3e1f83346256429a6bad8462461f962b389db"
uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5"
version = "0.6.2"
[[ImageMetadata]]
deps = ["AxisArrays", "ColorVectorSpace", "Colors", "FixedPointNumbers", "ImageAxes", "ImageCore", "IndirectArrays"]
git-tree-sha1 = "631c3e1dc2b645ed3bdee14418f8bbfc38b9b7f0"
uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49"
version = "0.7.0"
[[ImageMorphology]]
deps = ["Colors", "FixedPointNumbers", "ImageCore"]
git-tree-sha1 = "b0520a35f11221ef426000332976dc5f863e2af1"
uuid = "787d08f9-d448-5407-9aad-5290dd7ab264"
version = "0.2.3"
[[ImageShow]]
deps = ["Base64", "ColorTypes", "Colors", "FileIO", "FixedPointNumbers", "ImageCore", "OffsetArrays", "Requires"]
git-tree-sha1 = "c23323afc82b6b553e6b2244d531e50858ea392c"
uuid = "4e3cecfd-b093-5904-9786-8bbb286a6a31"
version = "0.2.0"
[[ImageTransformations]]
deps = ["AxisAlgorithms", "ColorTypes", "ColorVectorSpace", "Colors", "CoordinateTransformations", "FixedPointNumbers", "IdentityRanges", "ImageCore", "Interpolations", "OffsetArrays", "StaticArrays"]
git-tree-sha1 = "4cf03fc72d8877d5e58c1c72d176340ad4e28fda"
uuid = "02fcd773-0e25-5acc-982a-7f6622650795"
version = "0.8.0"
[[Images]]
deps = ["AxisArrays", "Base64", "ColorTypes", "ColorVectorSpace", "Colors", "FileIO", "FixedPointNumbers", "Graphics", "ImageAxes", "ImageCore", "ImageDistances", "ImageFiltering", "ImageMetadata", "ImageMorphology", "ImageShow", "ImageTransformations", "IndirectArrays", "MappedArrays", "OffsetArrays", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "TiledIteration"]
git-tree-sha1 = "1aae59fc0e34e47dfb111113bb6e9a65d7bafe81"
uuid = "916415d5-f1e6-5110-898d-aaa5f9f070e0"
version = "0.18.0"
[[IndirectArrays]]
deps = ["Compat", "Test"]
git-tree-sha1 = "b6e249be10a3381b2c72ac82f2d13d70067cb2bd"
uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959"
version = "0.5.0"
[[InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
[[Interpolations]]
deps = ["AxisAlgorithms", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"]
git-tree-sha1 = "f38e6a95b7dc441cb6fc8559c64a1cb3bb7ec6ca"
uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
version = "0.12.1"
[[IntervalSets]]
deps = ["Compat"]
git-tree-sha1 = "9dc556002f23740de13946e8c2e41798e09a9249"
uuid = "8197267c-284f-5f27-9208-e0e47529a953"
version = "0.3.1"
[[IterTools]]
deps = ["SparseArrays", "Test"]
git-tree-sha1 = "79246285c43602384e6f1943b3554042a3712056"
uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
version = "1.1.1"
[[JSON]]
deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"]
git-tree-sha1 = "1f7a25b53ec67f5e9422f1f551ee216503f4a0fa"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.20.0"
[[Juno]]
deps = ["Base64", "Logging", "Media", "Profile", "Test"]
git-tree-sha1 = "4e4a8d43aa7ecec66cadaf311fbd1e5c9d7b9175"
uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d"
version = "0.7.0"
[[LibGit2]]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
[[Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
[[LinearAlgebra]]
deps = ["Libdl"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
[[Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
[[MacroTools]]
deps = ["CSTParser", "Compat", "DataStructures", "Test"]
git-tree-sha1 = "daecd9e452f38297c686eba90dba2a6d5da52162"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.5.0"
[[MappedArrays]]
deps = ["Test"]
git-tree-sha1 = "923441c5ac942b60bd3a842d5377d96646bcbf46"
uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900"
version = "0.2.1"
[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
[[Media]]
deps = ["MacroTools", "Test"]
git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58"
uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27"
version = "0.5.0"
[[MeshIO]]
deps = ["ColorTypes", "FileIO", "GeometryTypes", "Printf", "Test"]
git-tree-sha1 = "3e01e12c4c626578a9d47fac0d15c9fe8dad5139"
uuid = "7269a6da-0436-5bbc-96c2-40638cbb6118"
version = "0.3.1"
[[Missings]]
deps = ["SparseArrays", "Test"]
git-tree-sha1 = "f0719736664b4358aa9ec173077d4285775f8007"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
version = "0.4.1"
[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
[[NNlib]]
deps = ["Libdl", "LinearAlgebra", "Requires", "Statistics", "TimerOutputs"]
git-tree-sha1 = "0c667371391fc6bb31f7f12f96a56a17098b3de8"
uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd"
version = "0.6.0"
[[NaNMath]]
deps = ["Compat"]
git-tree-sha1 = "ce3b85e484a5d4c71dd5316215069311135fa9f2"
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
version = "0.3.2"
[[OffsetArrays]]
deps = ["DelimitedFiles"]
git-tree-sha1 = "49a6d9b5b3dedec18035e4d97ce77e2b2a182c05"
uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
version = "0.11.0"
[[OrderedCollections]]
deps = ["Random", "Serialization", "Test"]
git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.1.0"
[[PaddedViews]]
deps = ["OffsetArrays", "Test"]
git-tree-sha1 = "7da3e7e1a58cffbf10177553ae95f17b92516912"
uuid = "5432bcbf-9aad-5242-b902-cca2824c8663"
version = "0.4.2"
[[Pkg]]
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
[[Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
[[Profile]]
deps = ["Printf"]
uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79"
[[REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
[[Random]]
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
[[RangeArrays]]
deps = ["Compat"]
git-tree-sha1 = "d925adfd5b01cb46fde89dc9548d167b3b136f4a"
uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d"
version = "0.3.1"
[[Ratios]]
deps = ["Compat"]
git-tree-sha1 = "cdbbe0f350581296f3a2e3e7a91b214121934407"
uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439"
version = "0.3.1"
[[RayTracer]]
deps = ["Distributed", "FileIO", "Flux", "IRTools", "Images", "MeshIO", "Zygote"]
path = "/home/avik-pal/.julia/dev/RayTracer"
uuid = "60dacb86-48ff-11e9-0f01-03ab8794bbc9"
version = "0.1.0"
[[Reexport]]
deps = ["Pkg"]
git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "0.2.0"
[[Requires]]
deps = ["Test"]
git-tree-sha1 = "f6fbf4ba64d295e146e49e021207993b6b48c7d1"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "0.5.2"
[[Rotations]]
deps = ["LinearAlgebra", "Random", "StaticArrays", "Statistics", "Test"]
git-tree-sha1 = "dfb3ceb177a59f25fee4e2f26c1aeb92b73d3a0e"
uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc"
version = "0.11.1"
[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
[[Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
[[SimpleTraits]]
deps = ["InteractiveUtils", "MacroTools", "Test"]
git-tree-sha1 = "c0a542b8d5e369b179ccd296b2ca987f6da5da0a"
uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d"
version = "0.8.0"
[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
[[SortingAlgorithms]]
deps = ["DataStructures", "Random", "Test"]
git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd"
uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
version = "0.3.1"
[[SparseArrays]]
deps = ["LinearAlgebra", "Random"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
[[SpecialFunctions]]
deps = ["BinDeps", "BinaryProvider", "Libdl", "Test"]
git-tree-sha1 = "0b45dc2e45ed77f445617b99ff2adf0f5b0f23ea"
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
version = "0.7.2"
[[StaticArrays]]
deps = ["InteractiveUtils", "LinearAlgebra", "Random", "Statistics", "Test"]
git-tree-sha1 = "3841b39ed5f047db1162627bf5f80a9cd3e39ae2"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "0.10.3"
[[Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
[[StatsBase]]
deps = ["DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"]
git-tree-sha1 = "8a0f4b09c7426478ab677245ab2b0b68552143c7"
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
version = "0.30.0"
[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
[[TiledIteration]]
deps = ["OffsetArrays", "Test"]
git-tree-sha1 = "58f6f07d3b54a363ec283a8f5fc9fb4ecebde656"
uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac"
version = "0.2.3"
[[TimerOutputs]]
deps = ["Crayons", "Printf", "Test", "Unicode"]
git-tree-sha1 = "b80671c06f8f8bae08c55d67b5ce292c5ae2660c"
uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
version = "0.5.0"
[[Tokenize]]
deps = ["Printf", "Test"]
git-tree-sha1 = "3e83f60b74911d3042d3550884ca2776386a02b8"
uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
version = "0.5.3"
[[Tracker]]
deps = ["Adapt", "DiffRules", "ForwardDiff", "LinearAlgebra", "MacroTools", "NNlib", "NaNMath", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics", "Test"]
git-tree-sha1 = "327342fec6e09f68ced0c2dc5731ed475e4b696b"
uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
version = "0.2.2"
[[TranscodingStreams]]
deps = ["Random", "Test"]
git-tree-sha1 = "a25d8e5a28c3b1b06d3859f30757d43106791919"
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
version = "0.9.4"
[[URIParser]]
deps = ["Test", "Unicode"]
git-tree-sha1 = "6ddf8244220dfda2f17539fa8c9de20d6c575b69"
uuid = "30578b45-9adc-5946-b283-645ec420af67"
version = "0.4.0"
[[UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
[[VersionParsing]]
deps = ["Compat"]
git-tree-sha1 = "c9d5aa108588b978bd859554660c8a5c4f2f7669"
uuid = "81def892-9a0e-5fdd-b105-ffc91e053289"
version = "1.1.3"
[[WoodburyMatrices]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "Test"]
git-tree-sha1 = "21772c33b447757ec7d3e61fcdfb9ea5c47eedcf"
uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6"
version = "0.4.1"
[[ZipFile]]
deps = ["BinaryProvider", "Libdl", "Printf", "Test"]
git-tree-sha1 = "5f6f663890dfb9bad6af75a86a43f67904e5050e"
uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea"
version = "0.8.1"
[[Zygote]]
deps = ["DiffRules", "ForwardDiff", "IRTools", "InteractiveUtils", "LinearAlgebra", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics"]
git-tree-sha1 = "90b1b474945674ec371f4fd8cb43de6297c6280c"
repo-rev = "a2efc32d155037390b35160c786a779ac4bd42e7"
repo-url = "https://github.com/FluxML/Zygote.jl.git"
uuid = "e88e6eb3-aa80-5325-afca-941959d7151f"
version = "0.3.1"
[deps]
BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0"
Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c"
IRTools = "7869d1d1-7146-5819-86e3-90919afe41df"
Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0"
RayTracer = "60dacb86-48ff-11e9-0f01-03ab8794bbc9"
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment