aether-engine 1.0.4__tar.gz → 1.1.0__tar.gz

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 (111) hide show
  1. aether_engine-1.1.0/PKG-INFO +155 -0
  2. aether_engine-1.1.0/README.md +107 -0
  3. aether_engine-1.1.0/aether/__init__.py +49 -0
  4. aether_engine-1.1.0/aether/core/__init__.py +17 -0
  5. aether_engine-1.1.0/aether/core/engine.py +462 -0
  6. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/input.py +84 -58
  7. aether_engine-1.1.0/aether/editor/__init__.py +5 -0
  8. aether_engine-1.1.0/aether/editor/__main__.py +6 -0
  9. aether_engine-1.1.0/aether/editor/model_editor.py +253 -0
  10. aether_engine-1.1.0/aether/graphics/camera.py +91 -0
  11. aether_engine-1.1.0/aether/graphics/first_person.py +105 -0
  12. aether_engine-1.1.0/aether/graphics/material.py +42 -0
  13. aether_engine-1.1.0/aether/graphics/mesh.py +103 -0
  14. aether_engine-1.1.0/aether/graphics/mesh_factory.py +175 -0
  15. aether_engine-1.1.0/aether/graphics/renderer.py +77 -0
  16. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/shader_library.py +79 -59
  17. aether_engine-1.1.0/aether/graphics2d/__init__.py +167 -0
  18. aether_engine-1.1.0/aether/physics/__init__.py +19 -0
  19. aether_engine-1.1.0/aether/physics/physics2d.py +233 -0
  20. aether_engine-1.1.0/aether/physics/physics3d.py +216 -0
  21. aether_engine-1.1.0/aether/resources/loaders/model_loader.py +185 -0
  22. aether_engine-1.1.0/aether/resources/loaders/obj_loader.py +57 -0
  23. aether_engine-1.1.0/aether/scene/component.py +221 -0
  24. aether_engine-1.1.0/aether_engine.egg-info/PKG-INFO +155 -0
  25. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/SOURCES.txt +12 -1
  26. aether_engine-1.1.0/aether_engine.egg-info/entry_points.txt +2 -0
  27. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/requires.txt +6 -3
  28. aether_engine-1.1.0/examples/01_hello_cube.py +59 -0
  29. aether_engine-1.1.0/examples/02_sphere_scene.py +62 -0
  30. aether_engine-1.1.0/examples/03_first_person.py +99 -0
  31. aether_engine-1.1.0/examples/04_physics2d.py +67 -0
  32. {aether_engine-1.0.4 → aether_engine-1.1.0}/setup.py +41 -28
  33. aether_engine-1.0.4/PKG-INFO +0 -149
  34. aether_engine-1.0.4/README.md +0 -108
  35. aether_engine-1.0.4/aether/__init__.py +0 -1
  36. aether_engine-1.0.4/aether/core/__init__.py +0 -211
  37. aether_engine-1.0.4/aether/core/engine.py +0 -211
  38. aether_engine-1.0.4/aether/graphics/camera.py +0 -69
  39. aether_engine-1.0.4/aether/graphics/material.py +0 -25
  40. aether_engine-1.0.4/aether/graphics/mesh.py +0 -83
  41. aether_engine-1.0.4/aether/graphics/mesh_factory.py +0 -67
  42. aether_engine-1.0.4/aether/graphics/renderer.py +0 -135
  43. aether_engine-1.0.4/aether/resources/loaders/obj_loader.py +0 -104
  44. aether_engine-1.0.4/aether/scene/component.py +0 -368
  45. aether_engine-1.0.4/aether/utils/__init__.py +0 -0
  46. aether_engine-1.0.4/aether_engine.egg-info/PKG-INFO +0 -149
  47. aether_engine-1.0.4/examples/01_hello_cube.py +0 -28
  48. aether_engine-1.0.4/examples/02_sphere_scene.py +0 -42
  49. {aether_engine-1.0.4 → aether_engine-1.1.0}/LICENSE +0 -0
  50. {aether_engine-1.0.4 → aether_engine-1.1.0}/MANIFEST.in +0 -0
  51. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ai/behavior_tree.py +0 -0
  52. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ai/navmesh.py +0 -0
  53. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/animation/skeleton.py +0 -0
  54. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/assets/asset_pipeline.py +0 -0
  55. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/__init__.py +0 -0
  56. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/audio_manager.py +0 -0
  57. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/music.py +0 -0
  58. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/sound.py +0 -0
  59. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/achievement_system.py +0 -0
  60. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/application.py +0 -0
  61. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/config.py +0 -0
  62. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/console.py +0 -0
  63. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/event_bus.py +0 -0
  64. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/plugin_system.py +0 -0
  65. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/save_system.py +0 -0
  66. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/time_manager.py +0 -0
  67. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/window.py +0 -0
  68. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/editor/gizmo.py +0 -0
  69. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/editor/imgui_integration.py +0 -0
  70. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/environment/environment_system.py +0 -0
  71. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/__init__.py +0 -0
  72. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/framebuffer.py +0 -0
  73. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/light.py +0 -0
  74. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/lod_system.py +0 -0
  75. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/particle_system.py +0 -0
  76. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/post_process.py +0 -0
  77. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/shader.py +0 -0
  78. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/sky_atmosphere.py +0 -0
  79. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/terrain.py +0 -0
  80. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/texture.py +0 -0
  81. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/water.py +0 -0
  82. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/network/network_manager.py +0 -0
  83. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/bullet_backend.py +0 -0
  84. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/collider.py +0 -0
  85. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/physics_world.py +0 -0
  86. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/raycast.py +0 -0
  87. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/rigidbody.py +0 -0
  88. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/platform/steam_api.py +0 -0
  89. {aether_engine-1.0.4/aether/physics → aether_engine-1.1.0/aether/resources}/__init__.py +0 -0
  90. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/asset_database.py +0 -0
  91. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/loaders/texture_loader.py +0 -0
  92. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/resource_manager.py +0 -0
  93. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/serialization.py +0 -0
  94. {aether_engine-1.0.4/aether/resources → aether_engine-1.1.0/aether/scene}/__init__.py +0 -0
  95. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/entity.py +0 -0
  96. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/scene.py +0 -0
  97. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/scene_graph.py +0 -0
  98. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/scene_manager.py +0 -0
  99. {aether_engine-1.0.4/aether/scene → aether_engine-1.1.0/aether/ui}/__init__.py +0 -0
  100. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ui/button.py +0 -0
  101. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ui/canvas.py +0 -0
  102. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ui/text.py +0 -0
  103. {aether_engine-1.0.4/aether/ui → aether_engine-1.1.0/aether/utils}/__init__.py +0 -0
  104. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/logger.py +0 -0
  105. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/math_utils.py +0 -0
  106. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/object_pool.py +0 -0
  107. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/profiler.py +0 -0
  108. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/dependency_links.txt +0 -0
  109. {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/top_level.txt +0 -0
  110. {aether_engine-1.0.4 → aether_engine-1.1.0}/pyproject.toml +0 -0
  111. {aether_engine-1.0.4 → aether_engine-1.1.0}/setup.cfg +0 -0
@@ -0,0 +1,155 @@
1
+ Metadata-Version: 2.4
2
+ Name: aether-engine
3
+ Version: 1.1.0
4
+ Summary: 3D/2D игровой движок на Python с OpenGL, физикой, FPS и редактором моделей
5
+ Home-page: https://pypi.org/project/aether-engine/
6
+ Author: entiti937
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
16
+ Classifier: Topic :: Games/Entertainment
17
+ Classifier: Topic :: Multimedia :: Graphics :: 3D Rendering
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: numpy>=1.24
22
+ Requires-Dist: glfw>=2.6
23
+ Requires-Dist: PyOpenGL>=3.1.7
24
+ Requires-Dist: Pillow>=10.0
25
+ Provides-Extra: audio
26
+ Requires-Dist: pygame-ce>=2.5; extra == "audio"
27
+ Provides-Extra: physics
28
+ Requires-Dist: pymunk>=6.0; extra == "physics"
29
+ Provides-Extra: models
30
+ Requires-Dist: trimesh>=3.21; extra == "models"
31
+ Provides-Extra: full
32
+ Requires-Dist: pygame-ce>=2.5; extra == "full"
33
+ Requires-Dist: freetype-py>=2.4; extra == "full"
34
+ Requires-Dist: pyyaml>=6.0; extra == "full"
35
+ Requires-Dist: imageio>=2.31; extra == "full"
36
+ Requires-Dist: trimesh>=3.21; extra == "full"
37
+ Requires-Dist: pymunk>=6.0; extra == "full"
38
+ Dynamic: author
39
+ Dynamic: classifier
40
+ Dynamic: description
41
+ Dynamic: description-content-type
42
+ Dynamic: home-page
43
+ Dynamic: license-file
44
+ Dynamic: provides-extra
45
+ Dynamic: requires-dist
46
+ Dynamic: requires-python
47
+ Dynamic: summary
48
+
49
+ AETHER ENGINE
50
+ =============
51
+
52
+ 3D / 2D игровой движок на Python + OpenGL.
53
+ Версия: 1.1.0 | MIT | Автор: entiti937
54
+
55
+
56
+ УСТАНОВКА
57
+ ---------
58
+
59
+ pip install aether-engine
60
+
61
+ С физикой и моделями:
62
+
63
+ pip install aether-engine[full]
64
+
65
+
66
+ ЧТО НОВОГО В 1.1.0
67
+ ------------------
68
+
69
+ - Загрузка моделей почти любых форматов (OBJ/STL/PLY/GLB/glTF/FBX/…) через ModelLoader
70
+ - Встроенный 3D редактор моделей (воксели → OBJ): `python -m aether.editor`
71
+ - Режим от первого лица: `engine.enable_first_person(camera)`
72
+ - 2D рендер (спрайты) + 2D физика (pymunk)
73
+ - Улучшенная 3D физика (rigidbody, AABB/sphere, raycast, земля)
74
+
75
+
76
+ ИГРА
77
+ ----
78
+
79
+ python games/orb_rush.py
80
+
81
+
82
+ РЕДАКТОР МОДЕЛЕЙ
83
+ ----------------
84
+
85
+ python -m aether.editor
86
+
87
+ Или из кода:
88
+
89
+ from aether import Engine
90
+ Engine.open_model_editor()
91
+
92
+ Управление редактором:
93
+ Стрелки / PgUp/PgDn — курсор
94
+ E / ЛКМ — поставить блок
95
+ Q / ПКМ — удалить
96
+ 1-8 — цвет
97
+ S / L — save/load JSON
98
+ O — экспорт OBJ
99
+ Tab — обзор мышью
100
+ ESC — выход
101
+
102
+
103
+ ПРИМЕРЫ
104
+ -------
105
+
106
+ python examples/01_hello_cube.py
107
+ python examples/02_sphere_scene.py
108
+ python examples/03_first_person.py
109
+ python examples/04_physics2d.py
110
+
111
+
112
+ БЫСТРЫЙ СТАРТ 3D + FPS
113
+ ----------------------
114
+
115
+ from aether import Engine, Scene, Entity, MeshFactory, Material, Camera, ModelLoader
116
+ from aether.scene.component import Transform, MeshRenderer
117
+
118
+ engine = Engine(1280, 720, "My Game")
119
+ scene = Scene("Main")
120
+ camera = Camera(position=(0, 1.7, 5), yaw=-90)
121
+ scene.set_main_camera(camera)
122
+
123
+ floor = Entity("Floor")
124
+ floor.add_component(Transform())
125
+ mat = Material(); mat.albedo[:] = (0.4, 0.45, 0.5)
126
+ floor.add_component(MeshRenderer(mesh=MeshFactory.create_plane(20), material=mat))
127
+ scene.spawn(floor)
128
+
129
+ # Любая модель:
130
+ # mesh = ModelLoader.load("hero.glb")
131
+
132
+ engine.load_scene(scene)
133
+ engine.enable_first_person(camera)
134
+ engine.run()
135
+
136
+
137
+ БЫСТРЫЙ СТАРТ 2D
138
+ ----------------
139
+
140
+ from aether import Engine, Sprite
141
+
142
+ engine = Engine(800, 600, "2D")
143
+ engine.set_mode("2d")
144
+ engine.renderer2d.add_sprite(Sprite(x=0, y=0, width=40, height=40, color=(1,0.3,0.2,1)))
145
+ engine.physics2d.create_box(0, -100, 400, 20, static=True)
146
+ engine.run()
147
+
148
+
149
+ ЗАВИСИМОСТИ
150
+ -----------
151
+
152
+ Обязательные: numpy, glfw, PyOpenGL, Pillow
153
+ Модели: trimesh
154
+ 2D физика: pymunk
155
+ Аудио: pygame-ce
@@ -0,0 +1,107 @@
1
+ AETHER ENGINE
2
+ =============
3
+
4
+ 3D / 2D игровой движок на Python + OpenGL.
5
+ Версия: 1.1.0 | MIT | Автор: entiti937
6
+
7
+
8
+ УСТАНОВКА
9
+ ---------
10
+
11
+ pip install aether-engine
12
+
13
+ С физикой и моделями:
14
+
15
+ pip install aether-engine[full]
16
+
17
+
18
+ ЧТО НОВОГО В 1.1.0
19
+ ------------------
20
+
21
+ - Загрузка моделей почти любых форматов (OBJ/STL/PLY/GLB/glTF/FBX/…) через ModelLoader
22
+ - Встроенный 3D редактор моделей (воксели → OBJ): `python -m aether.editor`
23
+ - Режим от первого лица: `engine.enable_first_person(camera)`
24
+ - 2D рендер (спрайты) + 2D физика (pymunk)
25
+ - Улучшенная 3D физика (rigidbody, AABB/sphere, raycast, земля)
26
+
27
+
28
+ ИГРА
29
+ ----
30
+
31
+ python games/orb_rush.py
32
+
33
+
34
+ РЕДАКТОР МОДЕЛЕЙ
35
+ ----------------
36
+
37
+ python -m aether.editor
38
+
39
+ Или из кода:
40
+
41
+ from aether import Engine
42
+ Engine.open_model_editor()
43
+
44
+ Управление редактором:
45
+ Стрелки / PgUp/PgDn — курсор
46
+ E / ЛКМ — поставить блок
47
+ Q / ПКМ — удалить
48
+ 1-8 — цвет
49
+ S / L — save/load JSON
50
+ O — экспорт OBJ
51
+ Tab — обзор мышью
52
+ ESC — выход
53
+
54
+
55
+ ПРИМЕРЫ
56
+ -------
57
+
58
+ python examples/01_hello_cube.py
59
+ python examples/02_sphere_scene.py
60
+ python examples/03_first_person.py
61
+ python examples/04_physics2d.py
62
+
63
+
64
+ БЫСТРЫЙ СТАРТ 3D + FPS
65
+ ----------------------
66
+
67
+ from aether import Engine, Scene, Entity, MeshFactory, Material, Camera, ModelLoader
68
+ from aether.scene.component import Transform, MeshRenderer
69
+
70
+ engine = Engine(1280, 720, "My Game")
71
+ scene = Scene("Main")
72
+ camera = Camera(position=(0, 1.7, 5), yaw=-90)
73
+ scene.set_main_camera(camera)
74
+
75
+ floor = Entity("Floor")
76
+ floor.add_component(Transform())
77
+ mat = Material(); mat.albedo[:] = (0.4, 0.45, 0.5)
78
+ floor.add_component(MeshRenderer(mesh=MeshFactory.create_plane(20), material=mat))
79
+ scene.spawn(floor)
80
+
81
+ # Любая модель:
82
+ # mesh = ModelLoader.load("hero.glb")
83
+
84
+ engine.load_scene(scene)
85
+ engine.enable_first_person(camera)
86
+ engine.run()
87
+
88
+
89
+ БЫСТРЫЙ СТАРТ 2D
90
+ ----------------
91
+
92
+ from aether import Engine, Sprite
93
+
94
+ engine = Engine(800, 600, "2D")
95
+ engine.set_mode("2d")
96
+ engine.renderer2d.add_sprite(Sprite(x=0, y=0, width=40, height=40, color=(1,0.3,0.2,1)))
97
+ engine.physics2d.create_box(0, -100, 400, 20, static=True)
98
+ engine.run()
99
+
100
+
101
+ ЗАВИСИМОСТИ
102
+ -----------
103
+
104
+ Обязательные: numpy, glfw, PyOpenGL, Pillow
105
+ Модели: trimesh
106
+ 2D физика: pymunk
107
+ Аудио: pygame-ce
@@ -0,0 +1,49 @@
1
+ """Aether Engine — 3D / 2D game engine"""
2
+
3
+ from aether.core.engine import Engine
4
+ from aether.scene.scene import Scene
5
+ from aether.scene.entity import Entity
6
+ from aether.scene.component import (
7
+ Transform,
8
+ MeshRenderer,
9
+ CameraComponent,
10
+ LightComponent,
11
+ RigidbodyComponent,
12
+ ScriptComponent,
13
+ )
14
+ from aether.graphics.mesh_factory import MeshFactory
15
+ from aether.graphics.material import Material
16
+ from aether.graphics.camera import Camera
17
+ from aether.graphics.first_person import FirstPersonController
18
+ from aether.resources.loaders.model_loader import ModelLoader
19
+ from aether.physics import PhysicsWorld2D, PhysicsWorld3D, BoxCollider, SphereCollider
20
+ from aether.graphics2d import Renderer2D, Sprite, Camera2D
21
+ from aether.editor import ModelEditor
22
+
23
+ __version__ = "1.1.0"
24
+
25
+ __all__ = [
26
+ "Engine",
27
+ "Scene",
28
+ "Entity",
29
+ "Transform",
30
+ "MeshRenderer",
31
+ "CameraComponent",
32
+ "LightComponent",
33
+ "RigidbodyComponent",
34
+ "ScriptComponent",
35
+ "MeshFactory",
36
+ "Material",
37
+ "Camera",
38
+ "FirstPersonController",
39
+ "ModelLoader",
40
+ "PhysicsWorld2D",
41
+ "PhysicsWorld3D",
42
+ "BoxCollider",
43
+ "SphereCollider",
44
+ "Renderer2D",
45
+ "Sprite",
46
+ "Camera2D",
47
+ "ModelEditor",
48
+ "__version__",
49
+ ]
@@ -0,0 +1,17 @@
1
+ """Core subsystem of Aether Engine."""
2
+
3
+ from aether.core.engine import Engine
4
+ from aether.core.window import Window
5
+ from aether.core.input import Input
6
+ from aether.core.time_manager import Time
7
+ from aether.core.event_bus import EventBus
8
+ from aether.core.config import EngineConfig
9
+
10
+ __all__ = [
11
+ "Engine",
12
+ "Window",
13
+ "Input",
14
+ "Time",
15
+ "EventBus",
16
+ "EngineConfig",
17
+ ]