raysetta 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +72 -0
  4. data/Rakefile +8 -0
  5. data/Steepfile +15 -0
  6. data/exe/raysetta +3 -0
  7. data/lib/raysetta/aabb.rb +116 -0
  8. data/lib/raysetta/background/base.rb +19 -0
  9. data/lib/raysetta/background/cube_map.rb +44 -0
  10. data/lib/raysetta/background/gradient.rb +28 -0
  11. data/lib/raysetta/background/solid.rb +24 -0
  12. data/lib/raysetta/background/sphere_map.rb +30 -0
  13. data/lib/raysetta/camera.rb +109 -0
  14. data/lib/raysetta/entity_base.rb +28 -0
  15. data/lib/raysetta/exe.rb +75 -0
  16. data/lib/raysetta/hit.rb +38 -0
  17. data/lib/raysetta/image.rb +46 -0
  18. data/lib/raysetta/interval.rb +63 -0
  19. data/lib/raysetta/material/base.rb +19 -0
  20. data/lib/raysetta/material/dielectric.rb +60 -0
  21. data/lib/raysetta/material/diffuse_light.rb +42 -0
  22. data/lib/raysetta/material/lambertian.rb +48 -0
  23. data/lib/raysetta/material/metal.rb +49 -0
  24. data/lib/raysetta/object/base.rb +23 -0
  25. data/lib/raysetta/object/box.rb +50 -0
  26. data/lib/raysetta/object/bvh.rb +81 -0
  27. data/lib/raysetta/object/group.rb +59 -0
  28. data/lib/raysetta/object/moving_sphere.rb +41 -0
  29. data/lib/raysetta/object/quad.rb +88 -0
  30. data/lib/raysetta/object/sphere.rb +68 -0
  31. data/lib/raysetta/object/tri.rb +46 -0
  32. data/lib/raysetta/output/base.rb +23 -0
  33. data/lib/raysetta/output/png.rb +26 -0
  34. data/lib/raysetta/output/ppm.rb +19 -0
  35. data/lib/raysetta/perlin.rb +91 -0
  36. data/lib/raysetta/ray.rb +28 -0
  37. data/lib/raysetta/runner/base.rb +28 -0
  38. data/lib/raysetta/runner/concurrent.rb +17 -0
  39. data/lib/raysetta/runner/processes.rb +26 -0
  40. data/lib/raysetta/runner/ractors.rb +32 -0
  41. data/lib/raysetta/runner/sync.rb +28 -0
  42. data/lib/raysetta/runner/threads.rb +26 -0
  43. data/lib/raysetta/runner.rb +45 -0
  44. data/lib/raysetta/scatter.rb +12 -0
  45. data/lib/raysetta/scene.rb +205 -0
  46. data/lib/raysetta/texture/base.rb +19 -0
  47. data/lib/raysetta/texture/checker.rb +55 -0
  48. data/lib/raysetta/texture/image.rb +57 -0
  49. data/lib/raysetta/texture/noise.rb +46 -0
  50. data/lib/raysetta/texture/solid_color.rb +36 -0
  51. data/lib/raysetta/tracer.rb +43 -0
  52. data/lib/raysetta/util.rb +38 -0
  53. data/lib/raysetta/vec2.rb +125 -0
  54. data/lib/raysetta/vec3.rb +214 -0
  55. data/lib/raysetta/version.rb +5 -0
  56. data/lib/raysetta.rb +44 -0
  57. data/mise.toml +2 -0
  58. data/scenes/box.json +26 -0
  59. data/scenes/cornell.json +108 -0
  60. data/scenes/cubemap.json +109 -0
  61. data/scenes/dumb.json +58 -0
  62. data/scenes/earth.json +79 -0
  63. data/scenes/example.json +11712 -0
  64. data/scenes/perlin.json +2126 -0
  65. data/scenes/quads.json +38 -0
  66. data/scenes/simple_light.json +2126 -0
  67. data/scenes/testcube.json +113 -0
  68. data/sig/raysetta/aabb.rbs +39 -0
  69. data/sig/raysetta/background/base.rbs +11 -0
  70. data/sig/raysetta/background/cube_map.rbs +9 -0
  71. data/sig/raysetta/background/gradient.rbs +10 -0
  72. data/sig/raysetta/background/solid.rbs +9 -0
  73. data/sig/raysetta/background/sphere_map.rbs +9 -0
  74. data/sig/raysetta/camera.rbs +41 -0
  75. data/sig/raysetta/entity_base.rbs +12 -0
  76. data/sig/raysetta/hit.rbs +21 -0
  77. data/sig/raysetta/image.rbs +13 -0
  78. data/sig/raysetta/interval.rbs +36 -0
  79. data/sig/raysetta/material/base.rbs +11 -0
  80. data/sig/raysetta/material/dielectric.rbs +15 -0
  81. data/sig/raysetta/material/diffuse_light.rbs +12 -0
  82. data/sig/raysetta/material/lambertian.rbs +10 -0
  83. data/sig/raysetta/material/metal.rbs +11 -0
  84. data/sig/raysetta/object/base.rbs +15 -0
  85. data/sig/raysetta/object/box.rbs +13 -0
  86. data/sig/raysetta/object/bvh.rbs +23 -0
  87. data/sig/raysetta/object/group.rbs +16 -0
  88. data/sig/raysetta/object/moving_sphere.rbs +15 -0
  89. data/sig/raysetta/object/quad.rbs +26 -0
  90. data/sig/raysetta/object/sphere.rbs +14 -0
  91. data/sig/raysetta/object/tri.rbs +15 -0
  92. data/sig/raysetta/output/base.rbs +15 -0
  93. data/sig/raysetta/output/png.rbs +8 -0
  94. data/sig/raysetta/output/ppm.rbs +7 -0
  95. data/sig/raysetta/perlin.rbs +19 -0
  96. data/sig/raysetta/ray.rbs +18 -0
  97. data/sig/raysetta/runner/base.rbs +15 -0
  98. data/sig/raysetta/runner/concurrent.rbs +10 -0
  99. data/sig/raysetta/runner/processes.rbs +9 -0
  100. data/sig/raysetta/runner/ractors.rbs +11 -0
  101. data/sig/raysetta/runner/sync.rbs +11 -0
  102. data/sig/raysetta/runner/threads.rbs +9 -0
  103. data/sig/raysetta/runner.rbs +5 -0
  104. data/sig/raysetta/scatter.rbs +8 -0
  105. data/sig/raysetta/scene.rbs +69 -0
  106. data/sig/raysetta/texture/base.rbs +11 -0
  107. data/sig/raysetta/texture/checker.rbs +15 -0
  108. data/sig/raysetta/texture/image.rbs +11 -0
  109. data/sig/raysetta/texture/noise.rbs +13 -0
  110. data/sig/raysetta/texture/solid_color.rbs +10 -0
  111. data/sig/raysetta/tracer.rbs +16 -0
  112. data/sig/raysetta/util.rbs +15 -0
  113. data/sig/raysetta/vec2.rbs +48 -0
  114. data/sig/raysetta/vec3.rbs +67 -0
  115. data/sig/raysetta.rbs +6 -0
  116. data/sig/stdlib/chunky_png.rbs +24 -0
  117. data/sig/stdlib/etc.rbs +3 -0
  118. data/sig/stdlib/json.rbs +3 -0
  119. data/sig/stdlib/optparse.rbs +4 -0
  120. data/sig/stdlib/parallel.rbs +5 -0
  121. data/sig/stdlib/progress.rbs +5 -0
  122. metadata +206 -0
@@ -0,0 +1,108 @@
1
+ {
2
+ "camera": {
3
+ "vfov": 40.0,
4
+ "lookfrom": [278.0, 278.0, -800.0],
5
+ "lookat": [278.0, 278.0, 0.0],
6
+ "vup": [0.0, 1.0, 0.0],
7
+ "defocus_angle": 0.0,
8
+ "focus_dist": 10.0
9
+ },
10
+ "background": {
11
+ "type": "Solid",
12
+ "albedo": [0.0, 0.0, 0.0]
13
+ },
14
+ "world": {
15
+ "left": {
16
+ "type": "Quad",
17
+ "q": [555.0, 0.0, 0.0],
18
+ "u": [0.0, 555.0, 0.0],
19
+ "v": [0.0, 0.0, 555.0],
20
+ "material": "green"
21
+ },
22
+ "right": {
23
+ "type": "Quad",
24
+ "q": [0.0, 0.0, 0.0],
25
+ "u": [0.0, 555.0, 0.0],
26
+ "v": [0.0, 0.0, 555.0],
27
+ "material": "red"
28
+ },
29
+ "light": {
30
+ "type": "Quad",
31
+ "q": [343.0, 554.0, 332.0],
32
+ "u": [-130.0, 0.0, 0.0],
33
+ "v": [0.0, 0.0, -105.0],
34
+ "material": "light"
35
+ },
36
+ "floor": {
37
+ "type": "Quad",
38
+ "q": [0.0, 0.0, 0.0],
39
+ "u": [555.0, 0.0, 0.0],
40
+ "v": [0.0, 0.0, 555.0],
41
+ "material": "white"
42
+ },
43
+ "ceil": {
44
+ "type": "Quad",
45
+ "q": [555.0, 555.0, 555.0],
46
+ "u": [-555.0, 0.0, 0.0],
47
+ "v": [0.0, 0.0, -555.0],
48
+ "material": "white"
49
+ },
50
+ "back": {
51
+ "type": "Quad",
52
+ "q": [0.0, 0.0, 555.0],
53
+ "u": [555.0, 0.0, 0.0],
54
+ "v": [0.0, 555.0, 0.0],
55
+ "material": "white"
56
+ },
57
+ "box1": {
58
+ "type": "Box",
59
+ "a": [130.0, 0.0, 65.0],
60
+ "b": [295.0, 165.0, 230.0],
61
+ "material": "white"
62
+ },
63
+ "box2": {
64
+ "type": "Box",
65
+ "a": [265.0, 0.0, 295.0],
66
+ "b": [430.0, 330.0, 460.0],
67
+ "material": "white"
68
+ }
69
+ },
70
+ "materials": {
71
+ "green": {
72
+ "type": "Lambertian",
73
+ "texture": "green"
74
+ },
75
+ "red": {
76
+ "type": "Lambertian",
77
+ "texture": "red"
78
+ },
79
+ "white": {
80
+ "type": "Lambertian",
81
+ "texture": "white"
82
+ },
83
+ "light": {
84
+ "type": "DiffuseLight",
85
+ "texture": "light"
86
+ }
87
+ },
88
+ "textures": {
89
+ "green": {
90
+ "type": "SolidColor",
91
+ "albedo": [0.12, 0.45, 0.15]
92
+ },
93
+ "red": {
94
+ "type": "SolidColor",
95
+ "albedo": [0.65, 0.05, 0.05]
96
+ },
97
+ "white": {
98
+ "type": "SolidColor",
99
+ "albedo": [0.73, 0.73, 0.73]
100
+ },
101
+ "light": {
102
+ "type": "SolidColor",
103
+ "albedo": [15.0, 15.0, 15.0]
104
+ }
105
+ },
106
+ "images": {},
107
+ "noises": {}
108
+ }