basilisk-engine 0.1.52__py3-none-any.whl → 0.1.53__py3-none-any.whl

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.

Potentially problematic release.


This version of basilisk-engine might be problematic. Click here for more details.

Files changed (94) hide show
  1. basilisk/__init__.py +27 -27
  2. basilisk/audio/sound.py +40 -40
  3. basilisk/bsk_assets/cube.obj +48 -48
  4. basilisk/collisions/broad/broad_aabb.py +102 -102
  5. basilisk/collisions/broad/broad_bvh.py +137 -137
  6. basilisk/collisions/collider.py +95 -95
  7. basilisk/collisions/collider_handler.py +225 -225
  8. basilisk/collisions/narrow/contact_manifold.py +95 -95
  9. basilisk/collisions/narrow/dataclasses.py +34 -34
  10. basilisk/collisions/narrow/deprecated.py +46 -46
  11. basilisk/collisions/narrow/epa.py +91 -91
  12. basilisk/collisions/narrow/gjk.py +66 -66
  13. basilisk/collisions/narrow/graham_scan.py +24 -24
  14. basilisk/collisions/narrow/helper.py +29 -29
  15. basilisk/collisions/narrow/line_intersections.py +106 -106
  16. basilisk/collisions/narrow/sutherland_hodgman.py +75 -75
  17. basilisk/config.py +53 -53
  18. basilisk/draw/draw.py +100 -100
  19. basilisk/draw/draw_handler.py +181 -181
  20. basilisk/draw/font_renderer.py +28 -28
  21. basilisk/engine.py +168 -168
  22. basilisk/generic/abstract_bvh.py +15 -15
  23. basilisk/generic/abstract_custom.py +133 -133
  24. basilisk/generic/collisions.py +70 -70
  25. basilisk/generic/input_validation.py +82 -82
  26. basilisk/generic/math.py +17 -17
  27. basilisk/generic/matrices.py +35 -35
  28. basilisk/generic/meshes.py +72 -72
  29. basilisk/generic/quat.py +142 -142
  30. basilisk/generic/quat_methods.py +7 -7
  31. basilisk/generic/raycast_result.py +26 -26
  32. basilisk/generic/vec3.py +143 -143
  33. basilisk/input_output/IO_handler.py +91 -91
  34. basilisk/input_output/clock.py +49 -49
  35. basilisk/input_output/keys.py +43 -43
  36. basilisk/input_output/mouse.py +90 -90
  37. basilisk/input_output/path.py +14 -14
  38. basilisk/mesh/cube.py +33 -33
  39. basilisk/mesh/mesh.py +233 -233
  40. basilisk/mesh/mesh_from_data.py +150 -150
  41. basilisk/mesh/model.py +271 -271
  42. basilisk/mesh/narrow_aabb.py +89 -89
  43. basilisk/mesh/narrow_bvh.py +91 -91
  44. basilisk/mesh/narrow_primative.py +23 -23
  45. basilisk/nodes/helper.py +28 -28
  46. basilisk/nodes/node.py +709 -709
  47. basilisk/nodes/node_handler.py +106 -106
  48. basilisk/particles/particle_handler.py +68 -68
  49. basilisk/particles/particle_renderer.py +92 -92
  50. basilisk/physics/impulse.py +112 -112
  51. basilisk/physics/physics_body.py +43 -43
  52. basilisk/physics/physics_engine.py +35 -35
  53. basilisk/render/batch.py +103 -103
  54. basilisk/render/bloom.py +117 -117
  55. basilisk/render/camera.py +260 -260
  56. basilisk/render/chunk.py +113 -113
  57. basilisk/render/chunk_handler.py +167 -167
  58. basilisk/render/frame.py +130 -130
  59. basilisk/render/framebuffer.py +192 -192
  60. basilisk/render/image.py +128 -128
  61. basilisk/render/image_handler.py +120 -120
  62. basilisk/render/light.py +96 -96
  63. basilisk/render/light_handler.py +58 -58
  64. basilisk/render/material.py +232 -232
  65. basilisk/render/material_handler.py +133 -133
  66. basilisk/render/post_process.py +180 -180
  67. basilisk/render/shader.py +135 -135
  68. basilisk/render/shader_handler.py +109 -109
  69. basilisk/render/sky.py +119 -119
  70. basilisk/scene.py +295 -295
  71. basilisk/shaders/batch.frag +291 -291
  72. basilisk/shaders/batch.vert +117 -117
  73. basilisk/shaders/bloom_downsample.frag +23 -23
  74. basilisk/shaders/bloom_upsample.frag +33 -33
  75. basilisk/shaders/crt.frag +34 -34
  76. basilisk/shaders/draw.frag +27 -27
  77. basilisk/shaders/draw.vert +25 -25
  78. basilisk/shaders/filter.frag +22 -22
  79. basilisk/shaders/frame.frag +13 -13
  80. basilisk/shaders/frame.vert +13 -13
  81. basilisk/shaders/frame_hdr.frag +27 -27
  82. basilisk/shaders/geometry.frag +10 -10
  83. basilisk/shaders/geometry.vert +41 -41
  84. basilisk/shaders/normal.frag +62 -62
  85. basilisk/shaders/normal.vert +96 -96
  86. basilisk/shaders/particle.frag +81 -81
  87. basilisk/shaders/particle.vert +86 -86
  88. basilisk/shaders/sky.frag +23 -23
  89. basilisk/shaders/sky.vert +13 -13
  90. {basilisk_engine-0.1.52.dist-info → basilisk_engine-0.1.53.dist-info}/METADATA +82 -89
  91. basilisk_engine-0.1.53.dist-info/RECORD +110 -0
  92. {basilisk_engine-0.1.52.dist-info → basilisk_engine-0.1.53.dist-info}/WHEEL +1 -1
  93. basilisk_engine-0.1.52.dist-info/RECORD +0 -110
  94. {basilisk_engine-0.1.52.dist-info → basilisk_engine-0.1.53.dist-info}/top_level.txt +0 -0
@@ -1,87 +1,87 @@
1
- #version 330 core
2
-
3
- layout (location = 0) in vec3 in_position;
4
- layout (location = 1) in vec2 in_uv;
5
- layout (location = 2) in vec3 in_normal;
6
- layout (location = 3) in vec3 in_tangent;
7
- layout (location = 4) in vec3 in_bitangent;
8
-
9
-
10
- in vec3 in_instance_pos;
11
- in float in_instance_mtl;
12
- in float scale;
13
- in float life;
14
-
15
- out vec2 uv;
16
- out mat3 TBN;
17
-
18
- uniform mat4 projectionMatrix;
19
- uniform mat4 viewMatrix;
20
- uniform sampler2D materialsTexture;
21
-
22
- struct Material {
23
- vec3 color;
24
- vec3 emissiveColor;
25
- float roughness;
26
- float subsurface;
27
- float sheen;
28
- float sheenTint;
29
- float anisotropic;
30
- float specular;
31
- float metallicness;
32
- float specularTint;
33
- float clearcoat;
34
- float clearcoatGloss;
35
-
36
- int hasAlbedoMap;
37
- vec2 albedoMap;
38
- int hasNormalMap;
39
- vec2 normalMap;
40
- int hasRoughnessMap;
41
- vec2 roughnessMap;
42
- int hasAoMap;
43
- vec2 aoMap;
44
- };
45
- flat out Material mtl;
46
-
47
- // Function to get the model matrix from node position, rotation, and scale
48
- mat4 getModelMatrix(vec3 pos, float scale) {
49
- mat4 translation = mat4(
50
- scale, 0 , 0 , 0,
51
- 0 , scale, 0 , 0,
52
- 0 , 0 , scale, 0,
53
- pos.x, pos.y, pos.z, 1
54
- );
55
- return translation;
56
- }
57
-
58
- // Function to get the TBN matrix for normal mapping
59
- mat3 getTBN(mat4 modelMatrix, vec3 normal, vec3 tangent, vec3 bitangent){
60
- vec3 T = normalize(vec3(modelMatrix * vec4(tangent, 0.0)));
61
- vec3 B = normalize(vec3(modelMatrix * vec4(bitangent, 0.0)));
62
- vec3 N = normalize(vec3(modelMatrix * vec4(normal, 0.0)));
63
- return mat3(T, B, N);
64
- }
65
-
66
- void main() {
67
- // Set the model matrix
68
- mat4 modelMatrix = getModelMatrix(in_instance_pos, scale * life);
69
-
70
- // Set out variables
71
- TBN = getTBN(modelMatrix, in_normal, in_tangent, in_bitangent);
72
- uv = in_uv;
73
-
74
- // Material Data
75
- int mtl_size = 28;
76
- int materialID = int(in_instance_mtl);
77
- mtl = Material(vec3(0), vec3(0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, vec2(0), 0, vec2(0), 0, vec2(0), 0, vec2(0));
78
- mtl.color = vec3(texelFetch(materialsTexture, ivec2(0, 0 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 1 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 2 + materialID * mtl_size), 0).r);
79
- mtl.hasAlbedoMap = int(texelFetch(materialsTexture, ivec2(0, 13 + materialID * mtl_size), 0).r);
80
- mtl.albedoMap = vec2(texelFetch(materialsTexture, ivec2(0, 14 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 15 + materialID * mtl_size), 0).r);
81
- mtl.hasNormalMap = int(texelFetch(materialsTexture, ivec2(0, 16 + materialID * mtl_size), 0).r);
82
- mtl.normalMap = vec2(texelFetch(materialsTexture, ivec2(0, 17 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 18 + materialID * mtl_size), 0).r);
83
- mtl.emissiveColor = vec3(texelFetch(materialsTexture, ivec2(0, 25 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 26 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 27 + materialID * mtl_size), 0).r);
84
-
85
- // Send position to the frag
86
- gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(in_position, 1.0);
1
+ #version 330 core
2
+
3
+ layout (location = 0) in vec3 in_position;
4
+ layout (location = 1) in vec2 in_uv;
5
+ layout (location = 2) in vec3 in_normal;
6
+ layout (location = 3) in vec3 in_tangent;
7
+ layout (location = 4) in vec3 in_bitangent;
8
+
9
+
10
+ in vec3 in_instance_pos;
11
+ in float in_instance_mtl;
12
+ in float scale;
13
+ in float life;
14
+
15
+ out vec2 uv;
16
+ out mat3 TBN;
17
+
18
+ uniform mat4 projectionMatrix;
19
+ uniform mat4 viewMatrix;
20
+ uniform sampler2D materialsTexture;
21
+
22
+ struct Material {
23
+ vec3 color;
24
+ vec3 emissiveColor;
25
+ float roughness;
26
+ float subsurface;
27
+ float sheen;
28
+ float sheenTint;
29
+ float anisotropic;
30
+ float specular;
31
+ float metallicness;
32
+ float specularTint;
33
+ float clearcoat;
34
+ float clearcoatGloss;
35
+
36
+ int hasAlbedoMap;
37
+ vec2 albedoMap;
38
+ int hasNormalMap;
39
+ vec2 normalMap;
40
+ int hasRoughnessMap;
41
+ vec2 roughnessMap;
42
+ int hasAoMap;
43
+ vec2 aoMap;
44
+ };
45
+ flat out Material mtl;
46
+
47
+ // Function to get the model matrix from node position, rotation, and scale
48
+ mat4 getModelMatrix(vec3 pos, float scale) {
49
+ mat4 translation = mat4(
50
+ scale, 0 , 0 , 0,
51
+ 0 , scale, 0 , 0,
52
+ 0 , 0 , scale, 0,
53
+ pos.x, pos.y, pos.z, 1
54
+ );
55
+ return translation;
56
+ }
57
+
58
+ // Function to get the TBN matrix for normal mapping
59
+ mat3 getTBN(mat4 modelMatrix, vec3 normal, vec3 tangent, vec3 bitangent){
60
+ vec3 T = normalize(vec3(modelMatrix * vec4(tangent, 0.0)));
61
+ vec3 B = normalize(vec3(modelMatrix * vec4(bitangent, 0.0)));
62
+ vec3 N = normalize(vec3(modelMatrix * vec4(normal, 0.0)));
63
+ return mat3(T, B, N);
64
+ }
65
+
66
+ void main() {
67
+ // Set the model matrix
68
+ mat4 modelMatrix = getModelMatrix(in_instance_pos, scale * life);
69
+
70
+ // Set out variables
71
+ TBN = getTBN(modelMatrix, in_normal, in_tangent, in_bitangent);
72
+ uv = in_uv;
73
+
74
+ // Material Data
75
+ int mtl_size = 28;
76
+ int materialID = int(in_instance_mtl);
77
+ mtl = Material(vec3(0), vec3(0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, vec2(0), 0, vec2(0), 0, vec2(0), 0, vec2(0));
78
+ mtl.color = vec3(texelFetch(materialsTexture, ivec2(0, 0 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 1 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 2 + materialID * mtl_size), 0).r);
79
+ mtl.hasAlbedoMap = int(texelFetch(materialsTexture, ivec2(0, 13 + materialID * mtl_size), 0).r);
80
+ mtl.albedoMap = vec2(texelFetch(materialsTexture, ivec2(0, 14 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 15 + materialID * mtl_size), 0).r);
81
+ mtl.hasNormalMap = int(texelFetch(materialsTexture, ivec2(0, 16 + materialID * mtl_size), 0).r);
82
+ mtl.normalMap = vec2(texelFetch(materialsTexture, ivec2(0, 17 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 18 + materialID * mtl_size), 0).r);
83
+ mtl.emissiveColor = vec3(texelFetch(materialsTexture, ivec2(0, 25 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 26 + materialID * mtl_size), 0).r, texelFetch(materialsTexture, ivec2(0, 27 + materialID * mtl_size), 0).r);
84
+
85
+ // Send position to the frag
86
+ gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(in_position, 1.0);
87
87
  }
basilisk/shaders/sky.frag CHANGED
@@ -1,24 +1,24 @@
1
- #version 330 core
2
-
3
- layout (location = 0) out vec4 fragColor;
4
- layout (location = 1) out vec4 bloomColor;
5
-
6
- in vec3 texCubeCoords;
7
-
8
- uniform samplerCube skyboxTexture;
9
-
10
- void main() {
11
- const float gamma = 2.2;
12
- const float exposure = 1.0;
13
- vec3 ldrColor = texture(skyboxTexture, texCubeCoords).rgb;
14
-
15
- // Inverse gamma correction (sRGB to linear)
16
- ldrColor = pow(ldrColor, vec3(gamma));
17
-
18
- // Apply exposure (pseudo-HDR)
19
- vec3 hdrColor = ldrColor * exposure;
20
-
21
- fragColor = vec4(hdrColor, 1.0);
22
-
23
- bloomColor = vec4(0.0, 0.0, 0.0, 1.0);
1
+ #version 330 core
2
+
3
+ layout (location = 0) out vec4 fragColor;
4
+ layout (location = 1) out vec4 bloomColor;
5
+
6
+ in vec3 texCubeCoords;
7
+
8
+ uniform samplerCube skyboxTexture;
9
+
10
+ void main() {
11
+ const float gamma = 2.2;
12
+ const float exposure = 1.0;
13
+ vec3 ldrColor = texture(skyboxTexture, texCubeCoords).rgb;
14
+
15
+ // Inverse gamma correction (sRGB to linear)
16
+ ldrColor = pow(ldrColor, vec3(gamma));
17
+
18
+ // Apply exposure (pseudo-HDR)
19
+ vec3 hdrColor = ldrColor * exposure;
20
+
21
+ fragColor = vec4(hdrColor, 1.0);
22
+
23
+ bloomColor = vec4(0.0, 0.0, 0.0, 1.0);
24
24
  }
basilisk/shaders/sky.vert CHANGED
@@ -1,14 +1,14 @@
1
- #version 330 core
2
- layout (location = 0) in vec3 in_position;
3
-
4
- out vec3 texCubeCoords;
5
-
6
- uniform mat4 projectionMatrix;
7
- uniform mat4 viewMatrix;
8
-
9
- void main() {
10
- texCubeCoords = in_position;
11
- vec4 pos = projectionMatrix * mat4(mat3(viewMatrix)) * vec4(in_position, 1.0);
12
- gl_Position = pos.xyww;
13
- gl_Position.z -= 0.0001;
1
+ #version 330 core
2
+ layout (location = 0) in vec3 in_position;
3
+
4
+ out vec3 texCubeCoords;
5
+
6
+ uniform mat4 projectionMatrix;
7
+ uniform mat4 viewMatrix;
8
+
9
+ void main() {
10
+ texCubeCoords = in_position;
11
+ vec4 pos = projectionMatrix * mat4(mat3(viewMatrix)) * vec4(in_position, 1.0);
12
+ gl_Position = pos.xyww;
13
+ gl_Position.z -= 0.0001;
14
14
  }
@@ -1,89 +1,82 @@
1
- Metadata-Version: 2.2
2
- Name: basilisk-engine
3
- Version: 0.1.52
4
- Summary: Python 3D Framework
5
- Home-page: https://basilisk-website.vercel.app/
6
- Author: Name
7
- Author-email: basiliskengine@gmail.com
8
- Description-Content-Type: text/markdown
9
- Requires-Dist: numpy
10
- Requires-Dist: pillow
11
- Requires-Dist: pygame-ce
12
- Requires-Dist: moderngl
13
- Requires-Dist: PyGLM
14
- Requires-Dist: numba
15
- Dynamic: author
16
- Dynamic: author-email
17
- Dynamic: description
18
- Dynamic: description-content-type
19
- Dynamic: home-page
20
- Dynamic: requires-dist
21
- Dynamic: summary
22
-
23
- # Basilisk Engine
24
- ![image](https://github.com/user-attachments/assets/5e39445c-e0da-452c-9f18-e590cca948c4)
25
- Basilisk is a 3D engine package for python that can create visualizations, simulations, and video games from the comfort and ease of Python. Basilisk is designed for quick and effortless development with a powerful backend engine that supports larger scaled projects. The engine automatically handles all graphics and physics for you, with the option to inject your own functionality if desired.
26
-
27
- <p align="center">
28
- <img src="images/mud.png" alt="mud" width="400"/>
29
- <img src="images/foil.png" alt="foil" width="400"/>
30
- <img src="images/cloth.png" alt="mud" width="400"/>
31
- <img src="images/floor.png" alt="mud" width="400"/>
32
- </p>
33
-
34
- # Quick Start
35
- ## Installation
36
- To start, you will need to install Basilisk engine. To do so, simply run the following command from the terminal:
37
-
38
- ```cmd
39
- pip install basilisk-engine
40
- ```
41
-
42
- Now you will be able to import the package with `import basilisk`. Since Basilisk is fully open source, you also have the option to download the code from the [github](https://github.com/Loffelt/BasiliskEngine) if you prefer.
43
-
44
- ## First Program
45
- Every Basilisk prorgam has an [Engine]() that handles the high level functionality of Basilisk. Additionally, you will want a [Scene]() which will hold the application's objects.
46
-
47
- ```py
48
- # Import basilisk into the project. We use bsk as convention
49
- import basilisk as bsk
50
-
51
- # Initialize objects for the engine and the scene
52
- engine = bsk.Engine()
53
- scene = bsk.Scene(engine)
54
- ```
55
-
56
- Here we will introduce an important paradigm of Basilisk's design that will reoccur throughout this guide. Most things used in Basilisk are objects, such as the engine and the scene. You can use these objects wherever and whenever you want. In this instance, we pass the engine to the scene, so that Basilisk knows the scene is part of the engine. Now, we will set up the game loop. We use a while loop by convention.
57
-
58
- ```py
59
- while engine.running: # Check that the engine is still running
60
- scene.update() # Update the scene and render to temporary frame
61
- engine.update() # Update the engine and render to the screen
62
- ```
63
-
64
- The `engine.running` attribute is just a boolean flag that tells the user if the engine is running still and has not been stoped for any reason. The `scene.update()` function will render the scene and handle physics/object updates for the tick. The `engine.update()` function will tell the engine to handle all frame rendering and inputs.
65
-
66
- With just these six lines of code, you can now run the python file, and you should see something like this. Note that you can free your mouse by pressing escape (this behavior can be changed if desired see input section in [Engine]() reference page):
67
-
68
- <div align="center">
69
- <img src="docs/images/0_boilerplate.png" alt="mud" width="400"/>
70
- </div>
71
-
72
- Congratulations you have finished your first Basilisk program!
73
-
74
- ## Full Code
75
- For clarity, here is the full code used in this tutorial.
76
-
77
- ```py
78
- import basilisk as bsk
79
-
80
- engine = bsk.Engine()
81
- scene = bsk.Scene(engine)
82
-
83
- while engine.running:
84
- scene.update()
85
- engine.update()
86
- ```
87
-
88
- ## Learn more at the [Basilisk Engine Website](https://basilisk-website.vercel.app)
89
- Webpage still under development.
1
+ Metadata-Version: 2.1
2
+ Name: basilisk-engine
3
+ Version: 0.1.53
4
+ Summary: Python 3D Framework
5
+ Home-page: https://basilisk-website.vercel.app/
6
+ Author: Name
7
+ Author-email: basiliskengine@gmail.com
8
+ Description-Content-Type: text/markdown
9
+ Requires-Dist: numpy
10
+ Requires-Dist: pillow
11
+ Requires-Dist: pygame-ce
12
+ Requires-Dist: moderngl
13
+ Requires-Dist: PyGLM
14
+ Requires-Dist: numba
15
+
16
+ # Basilisk Engine
17
+ ![image](https://github.com/user-attachments/assets/5e39445c-e0da-452c-9f18-e590cca948c4)
18
+ Basilisk is a 3D engine package for python that can create visualizations, simulations, and video games from the comfort and ease of Python. Basilisk is designed for quick and effortless development with a powerful backend engine that supports larger scaled projects. The engine automatically handles all graphics and physics for you, with the option to inject your own functionality if desired.
19
+
20
+ <p align="center">
21
+ <img src="images/mud.png" alt="mud" width="400"/>
22
+ <img src="images/foil.png" alt="foil" width="400"/>
23
+ <img src="images/cloth.png" alt="mud" width="400"/>
24
+ <img src="images/floor.png" alt="mud" width="400"/>
25
+ </p>
26
+
27
+ # Quick Start
28
+ ## Installation
29
+ To start, you will need to install Basilisk engine. To do so, simply run the following command from the terminal:
30
+
31
+ ```cmd
32
+ pip install basilisk-engine
33
+ ```
34
+
35
+ Now you will be able to import the package with `import basilisk`. Since Basilisk is fully open source, you also have the option to download the code from the [github](https://github.com/Loffelt/BasiliskEngine) if you prefer.
36
+
37
+ ## First Program
38
+ Every Basilisk prorgam has an [Engine]() that handles the high level functionality of Basilisk. Additionally, you will want a [Scene]() which will hold the application's objects.
39
+
40
+ ```py
41
+ # Import basilisk into the project. We use bsk as convention
42
+ import basilisk as bsk
43
+
44
+ # Initialize objects for the engine and the scene
45
+ engine = bsk.Engine()
46
+ scene = bsk.Scene(engine)
47
+ ```
48
+
49
+ Here we will introduce an important paradigm of Basilisk's design that will reoccur throughout this guide. Most things used in Basilisk are objects, such as the engine and the scene. You can use these objects wherever and whenever you want. In this instance, we pass the engine to the scene, so that Basilisk knows the scene is part of the engine. Now, we will set up the game loop. We use a while loop by convention.
50
+
51
+ ```py
52
+ while engine.running: # Check that the engine is still running
53
+ scene.update() # Update the scene and render to temporary frame
54
+ engine.update() # Update the engine and render to the screen
55
+ ```
56
+
57
+ The `engine.running` attribute is just a boolean flag that tells the user if the engine is running still and has not been stoped for any reason. The `scene.update()` function will render the scene and handle physics/object updates for the tick. The `engine.update()` function will tell the engine to handle all frame rendering and inputs.
58
+
59
+ With just these six lines of code, you can now run the python file, and you should see something like this. Note that you can free your mouse by pressing escape (this behavior can be changed if desired see input section in [Engine]() reference page):
60
+
61
+ <div align="center">
62
+ <img src="docs/images/0_boilerplate.png" alt="mud" width="400"/>
63
+ </div>
64
+
65
+ Congratulations you have finished your first Basilisk program!
66
+
67
+ ## Full Code
68
+ For clarity, here is the full code used in this tutorial.
69
+
70
+ ```py
71
+ import basilisk as bsk
72
+
73
+ engine = bsk.Engine()
74
+ scene = bsk.Scene(engine)
75
+
76
+ while engine.running:
77
+ scene.update()
78
+ engine.update()
79
+ ```
80
+
81
+ ## Learn more at the [Basilisk Engine Website](https://basilisk-website.vercel.app)
82
+ Webpage still under development.
@@ -0,0 +1,110 @@
1
+ basilisk/__init__.py,sha256=M916EklOGNPWv-LskcMwtFfTqFgnu5dnLEDcR9GzqZQ,1162
2
+ basilisk/config.py,sha256=czvjhMD2QVOGfxrdVfxI-jOex54dRwwwYzBiACYuZ0s,1765
3
+ basilisk/engine.py,sha256=xCbqQWy2wqzu-E-p3OKBacB6C5M4qnKgCBt9fpOJPJw,6193
4
+ basilisk/scene.py,sha256=Xo2VIBu18xDI94jGtFNs-JSZg3XnqFDd7OKOemWKDSA,12778
5
+ basilisk/audio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ basilisk/audio/sound.py,sha256=DI4JuvblabCcpQZZDiRUXKLK3eu_KkvGRJp6TvNs2S4,1154
7
+ basilisk/bsk_assets/Roboto-Regular.ttf,sha256=kqYnZjMRQMpbyLulIChCLSdgYa1XF8GsUIoRi2Gcauw,168260
8
+ basilisk/bsk_assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ basilisk/bsk_assets/basilisk.png,sha256=1xePD8qDycxlRQ7hjEmfuw900BRykhRyumJePi6hxi8,21299
10
+ basilisk/bsk_assets/cube.obj,sha256=rLm2nNcfj1zPZUx-VSF5CxqnToteHjzXQNxfRNq5iKU,1189
11
+ basilisk/bsk_assets/skybox.png,sha256=0C9MvWUwNzewyiMtWLKrZJzAcLC1Ce72T3-Lq4hJZu0,1206153
12
+ basilisk/collisions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ basilisk/collisions/collider.py,sha256=JQn1C1Iuj0zMp3_KLyckWW9BcPfRqBRbCE6cMpAGUNM,4584
14
+ basilisk/collisions/collider_handler.py,sha256=CsrsCwUgLUHUa_oWQMosgchnkIS6UAvurYGRcrl_mHM,11456
15
+ basilisk/collisions/broad/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ basilisk/collisions/broad/broad_aabb.py,sha256=cyBCFFFkMY0yNDqBUY0HZ711m3QSSzoW2Ao9f8cFshE,4708
17
+ basilisk/collisions/broad/broad_bvh.py,sha256=M7sMYRzxAwjIu_nkYKrL8HW3YxzBvfrSN1qKClNY568,5127
18
+ basilisk/collisions/narrow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ basilisk/collisions/narrow/contact_manifold.py,sha256=mHi6fhrVJcBE37aU4u08hb0OmeaTtIZE_TnnMSdngYA,4893
20
+ basilisk/collisions/narrow/dataclasses.py,sha256=aZVL6WEfapdhSp8WFhydTPf92Rb8fPvCEJB6TZMyTHM,950
21
+ basilisk/collisions/narrow/deprecated.py,sha256=yQh6VOoVcwYENU4TThk_pXPSmwT3EfxMKILVR43sEDI,2751
22
+ basilisk/collisions/narrow/epa.py,sha256=XY-SeBuYMlbI-OB5_3NBkIPSrK6wL20He8FmtaVqacY,4708
23
+ basilisk/collisions/narrow/gjk.py,sha256=2EfQZ9GCatbf5KFLCfTKTWpa4kQcRXCNnbdqSAWj-d0,3348
24
+ basilisk/collisions/narrow/graham_scan.py,sha256=4cpsK2qbvLPw09LGXZp779Z536B-bpQciF-atZ4ngEI,862
25
+ basilisk/collisions/narrow/helper.py,sha256=aUdLdHkbAimnMnh_TWIanCTOJi2ZTY-cXLMhzqZudsQ,1261
26
+ basilisk/collisions/narrow/line_intersections.py,sha256=CGtttZ6n51u4l8JtQXzkClgZ_uvgx9IyrrGqli6JDbI,4629
27
+ basilisk/collisions/narrow/sutherland_hodgman.py,sha256=SUjSU5y7AuzIDiljMcTXxlGuFHT5IwtrOJ_k5HS1S2Y,3140
28
+ basilisk/draw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ basilisk/draw/draw.py,sha256=HI-EILtUmKl3el9XG7zACJRkDIgy0wwhjVBnBiryzrs,3634
30
+ basilisk/draw/draw_handler.py,sha256=Ib31f2YSgyMVKrjB3L3vNXAnLRmNej-owJDIzy-ZyLI,6371
31
+ basilisk/draw/font_renderer.py,sha256=gyI59fW3DUswIcSg5VJLLcJti3OLTMdXNQrYJaw18dE,1092
32
+ basilisk/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ basilisk/generic/abstract_bvh.py,sha256=iQ6HjcI8Msw34dZ3YuDAhWSqEc4NTBHAaGqAZZAoLL8,383
34
+ basilisk/generic/abstract_custom.py,sha256=1kDrMDfXFujBDGr3sbOzeVV5OKyLcpw5WmnfXVWFCqY,4539
35
+ basilisk/generic/collisions.py,sha256=qQ3Q-pJ-bchwfjCkLZXEqBO0YVu33CQQwbpfB9vkjco,2632
36
+ basilisk/generic/input_validation.py,sha256=YePW3qR3d4kdgUptya6n8gKMgvytZPM--zVaFv_hppk,4326
37
+ basilisk/generic/math.py,sha256=SmICsI0ZMF2G90z_utStL6ggp9RWqVcELMM9hrAptuw,694
38
+ basilisk/generic/matrices.py,sha256=QTKwujcIHzakil4MgbYJLObg7WqP-J9OesrqoSMZ5NU,1323
39
+ basilisk/generic/meshes.py,sha256=0Zq5EkWEtqz-2V-kEQt-R3JZvUS5RTqflih8Mj9vL4o,2639
40
+ basilisk/generic/quat.py,sha256=4uVMo_ZyB9a0yX89JCKrLUb7pqu2DbLn1cNByGb9Z-k,5244
41
+ basilisk/generic/quat_methods.py,sha256=FFqS2Iy1OLH6oJf1elhH9RbWiE_KMXe5eO95ayrEhbc,241
42
+ basilisk/generic/raycast_result.py,sha256=S0eRDWk8Qi0AW1xkqp9PzFJRUD8iJ365SOaldWi9xU4,809
43
+ basilisk/generic/vec3.py,sha256=n_OAVVFtzH-ctqU8Pqhs2426MQ0WOgBbq2Lfo3Nt498,5280
44
+ basilisk/input_output/IO_handler.py,sha256=jlBQTu7TlDICKcauJrTDtGrdY_U4yJUYSFu2WFGh6ys,2913
45
+ basilisk/input_output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ basilisk/input_output/clock.py,sha256=cFnWDBItD5pWw3Gu1xld771hYpYR_G6Z53DvJiZj5jg,1511
47
+ basilisk/input_output/keys.py,sha256=hTZqrR4EVLOXLq093yBBqBbpJJoasQV85BuBG5eW5aw,1411
48
+ basilisk/input_output/mouse.py,sha256=sTqr0Uh7Sy7bQyLvaObpDzERSeDaXN2_LdBgeMkf164,3066
49
+ basilisk/input_output/path.py,sha256=GiO1OS1UGujnl3KdIB7fGzI5BgIg7RHyI8LxsGWskcs,455
50
+ basilisk/mesh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ basilisk/mesh/cube.py,sha256=UAwjEmaoWfUdtSKjxATU6vUbksDYj7_bBIr1k1xDsYc,1077
52
+ basilisk/mesh/mesh.py,sha256=nX-bGMECMbHx3xJSkqkyLaiYokqF1ve3b8vBakU6UtQ,10041
53
+ basilisk/mesh/mesh_from_data.py,sha256=QiWFFWUVbv9yhMkfo3yYpvK2a9gLUbSPYocdEQVgz-4,5138
54
+ basilisk/mesh/model.py,sha256=uVnYm_XYSoZslNWmOego59Ku-gqKxZHpta_dHi65X1s,11993
55
+ basilisk/mesh/narrow_aabb.py,sha256=0lc06JgdfhUbzxUnCz4dcbEYSB3xjAf7DY7ec2096is,3868
56
+ basilisk/mesh/narrow_bvh.py,sha256=jLQhmUNi6mFyU2wVwB_SOf4PIaOAygBTtcnQIyaMOGg,4351
57
+ basilisk/mesh/narrow_primative.py,sha256=vWpIeo8I9le-EAvcr9rFUQlbl9mi6eYroqCSMK-m9eY,953
58
+ basilisk/nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
+ basilisk/nodes/helper.py,sha256=VdlGuEaMtLa992_8yNOB-QIgz4Izr5wNMSm8H6KftKE,2097
60
+ basilisk/nodes/node.py,sha256=tk4xV4Mqhm-BnEBYmau3MTGYHhjXqFk0VkRJCN1C3Sk,33886
61
+ basilisk/nodes/node_handler.py,sha256=qXT04Kdi0fIekeFPtwhT_ALggdz1-XozrgPNhz_uyVI,4440
62
+ basilisk/particles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ basilisk/particles/particle_handler.py,sha256=jkr1-njGCb2tFmcSyuG0VCaCNlpWxHMw4-LaCUPPc1c,3066
64
+ basilisk/particles/particle_renderer.py,sha256=HEJfWGUcrWc2SHnfxP-f5gRG0dOy_yPF9257Jn9jasM,3790
65
+ basilisk/physics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ basilisk/physics/impulse.py,sha256=zv6MoGTSlu8qVbsbe2QxERGeyQZYbtzR_WVSqVLsmhw,5873
67
+ basilisk/physics/physics_body.py,sha256=_mi-AVMgQqUsC3bQIca5tgk2xWXTIUw0D_uC4DcQqqs,1508
68
+ basilisk/physics/physics_engine.py,sha256=IPMshr4j5TII5JdcRqiULc6BfkeCLPxdICKqQeZGAtY,1735
69
+ basilisk/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ basilisk/render/batch.py,sha256=wLRhk7neeTCQ_c1WrL2zFc8m3sNTF6whnJC1SPoAj9I,3499
71
+ basilisk/render/bloom.py,sha256=xKbGYjcdYZiphFq1ZHqd6bCYNIbZrQh4me9DT1OUXVc,4302
72
+ basilisk/render/camera.py,sha256=Bzyqp1ESNqjTR03hZIhil7pU1In5JDz-7sCj1Pter-M,9909
73
+ basilisk/render/chunk.py,sha256=xkNFe7RrLCPKRJcWP1G1SgFsuarm7R5ZWSDuzAo66m0,3040
74
+ basilisk/render/chunk_handler.py,sha256=zJPYv3vw6_mtYQ0fW46j87dGrZENMBcRuHFzFOxqY-Q,6572
75
+ basilisk/render/frame.py,sha256=ng0rTyROfhJ09raSnt_hmYdaqn1eGo_bM9Qp9Y9BSdA,4258
76
+ basilisk/render/framebuffer.py,sha256=jvqa9-wVgY8sxzF24ALdz7T5717oXlLhEP4kB8KKS34,7063
77
+ basilisk/render/image.py,sha256=fmTQAqN4pFwkEVYdO3WOkUVpPCWJbTd4lQkzzm8a-9s,4735
78
+ basilisk/render/image_handler.py,sha256=kYzO23Ke9EWaTgQlJGeUsi4gmrSDrByI55tgg3OuNW8,4303
79
+ basilisk/render/light.py,sha256=hFqODv9iK4GEDZeDyBHxOWwwd4v8Pm089_xoScBMjVY,3879
80
+ basilisk/render/light_handler.py,sha256=baJ1p0ob_5OK2Dyd5zZYcldAGWUyVlF21dp_Yfopyd8,2162
81
+ basilisk/render/material.py,sha256=umGdE-wI8CEXTArPzZc5rmyHKendsQWkOkpb0l5B6m8,10304
82
+ basilisk/render/material_handler.py,sha256=kvnXoJrpCX42V2BkOLbEu0wERDeTvL-x6JVpDSoFiVY,4193
83
+ basilisk/render/post_process.py,sha256=MZfry8c2CaHzW4QnM9o1jm3RXTyTac12aIEd2D6u_qc,6699
84
+ basilisk/render/shader.py,sha256=o8NGkWfwwM3_DqxIwXThkMsyxsHgmW9crXWr54p0Tnc,5005
85
+ basilisk/render/shader_handler.py,sha256=WOY-m0cBPztTB--pleqKfQlYGaDUlar0GseN-872MJA,3369
86
+ basilisk/render/sky.py,sha256=mgTx_Tp3RxpjNltdrLdsFt4knCbHybURgQHp7q1ASNk,4905
87
+ basilisk/shaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
+ basilisk/shaders/batch.frag,sha256=k5bcLfB9tvGHAxx2dsidn_7b-YSDiPI0KnztoE0R018,9805
89
+ basilisk/shaders/batch.vert,sha256=xh-9DWRVi5ySMl23vqSEueGDdz1K_2RT9CKMtlY-xmA,5672
90
+ basilisk/shaders/bloom_downsample.frag,sha256=dkgC6_ZkFJPYBLjgQLd9vFLplVvMO0sA_E9ZcgGt0I8,708
91
+ basilisk/shaders/bloom_upsample.frag,sha256=0xKkuTSfAxDco5NFqPOt9BtQ-ITGyQ3S0xH2szww19A,1189
92
+ basilisk/shaders/crt.frag,sha256=3bp1alrgSauvd-PXzsCx7q9VfspIlQ5gNccrs6meir4,1077
93
+ basilisk/shaders/draw.frag,sha256=Bdt5PfFxNmsHQ3X48MO6Adc3Kgk0BPX-VHOyvMJ1OTE,632
94
+ basilisk/shaders/draw.vert,sha256=rMtpZFcF3Batup8xgAoJuxJhZ03c8DZ6uu7G5BdJe-A,621
95
+ basilisk/shaders/filter.frag,sha256=m_egR4yiFRmIHGwCCfpcdvGXQi1w1Ago_iABlbnX80c,584
96
+ basilisk/shaders/frame.frag,sha256=i3lvdKYyRKsDXV51ZyjyLrYKd5_zaRtBJXDjwuIvMBc,207
97
+ basilisk/shaders/frame.vert,sha256=KPB-Q3-Rix9-JxSj5tBHbZOu7QCdFgCzHwiZKEYIbFc,227
98
+ basilisk/shaders/frame_hdr.frag,sha256=WfoNWu_s5JxsX_-X-KUJsonCWQ6h7XIn73eRca8TouM,612
99
+ basilisk/shaders/geometry.frag,sha256=6Fcd1mMX5UAslw2GfREuA510UAAKrGdPYQHsaEDqLck,230
100
+ basilisk/shaders/geometry.vert,sha256=2yPpezklovRQczpuf2pUhi4mMv3-YaOjDQCbrzdcdpk,1473
101
+ basilisk/shaders/normal.frag,sha256=I1kU5-u_UeDJJJZLuSU6Dl-9oYmzP040_SLqbGFHWw8,1408
102
+ basilisk/shaders/normal.vert,sha256=4BlcNsIw3fQFsZlfF7VZr6EAV2Y-M-72tXhfaE0uReM,3320
103
+ basilisk/shaders/particle.frag,sha256=6eHqpFT3CgtpNHCJZoHXbsdnzWaCN9Q0VKZZOpCvWfM,2058
104
+ basilisk/shaders/particle.vert,sha256=NbA_WKpxx1IAQt5wso5dZAZRqwVlejPjNdFg_GeJXEE,3313
105
+ basilisk/shaders/sky.frag,sha256=Fr9SQHPKPV9a1mgSeprSiOaFjPrQX9qqZu3Uc_fQT0c,579
106
+ basilisk/shaders/sky.vert,sha256=v_BSdnMiljSJGPqno-J_apAiom38IrBzbDoxM7pIgwI,345
107
+ basilisk_engine-0.1.53.dist-info/METADATA,sha256=TWDjzPMZzCiv5qfmrIDj_UlMtAxFEmGEuSrUqBnF44k,3723
108
+ basilisk_engine-0.1.53.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
109
+ basilisk_engine-0.1.53.dist-info/top_level.txt,sha256=enlSYSf7CUyAly1jmUCNNGInTbaFUjGk4SKwyckZQkw,9
110
+ basilisk_engine-0.1.53.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5