Skip to content

Artist update#92

Merged
bridgesign merged 4 commits into
devfrom
artist-update
Jun 1, 2026
Merged

Artist update#92
bridgesign merged 4 commits into
devfrom
artist-update

Conversation

@mehulsinha73

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@bridgesign bridgesign merged commit a3c2d2c into dev Jun 1, 2026
0 of 3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

bridgesign added a commit that referenced this pull request Jun 9, 2026
* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

* Added tests. Corrected sensor engine "create_sensor" method

* Extended agent to have custom orientation and added checks on improper actions

* Aerial agent with recording update. Extension in IAgent interface and respective modifications in implementation

* three sensors for drones

* Sqlite graph (#63)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

---------

Co-authored-by: Copilot <[email protected]>

* sensors untested

* Added tests. Corrected sensor engine "create_sensor" method

* Sqlite graph (#63)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

---------

Co-authored-by: Copilot <[email protected]>

* Repetition due to commit merge mess up

* Remove repetition

* Update tests/sensor_test.py

Co-authored-by: Copilot <[email protected]>

* Max_d should be infinity when failing to find close enough nodes

* Aerial agent visual (#65)

* Add aerial agent visual

* Support mouse input for aerial agents, fix coord transform and prev_position record

* Aerial agent shape

* Fix typing problems

* Aerial agent visual (#66)

* Add aerial agent visual

* Support mouse input for aerial agents, fix coord transform and prev_position record

* Aerial agent shape

* Fix typing problems

* Aerial agent move range, up/down movement and simplify get neighbor

* Fix parameter style

* No / in path. Windows issue

* Corrected Aerial Sensor typing and implementation. Testing remaining

* Update of human input handling and aerial sensor default drawers

* Add agent before registering sensors. Otherwise error on aerial sensors

* Agent test suite and corrections in agent implementations or documentation as it was wrong

* Corrections is direction and cosine clipping

* Corrected tests for aerial agents

* Updated docs

* wrong plugin option

* Agent orientation needs to be normalized before setting

* Linetrsing creation isi pretty heavy. Optimize if it is not required. Also, typing should only have types not dataclasses

* Only warn when redefining custom sensor type. Change it in future versions to make it register only per context.

* Added license

* Deprecated setup.py

* Changes for release

* Added workflow

* No branch required

* Remove setup.py

* for vis

* Added artist API in docs

* Changed tempfile to dir for windows issue

* Added font size for render_text

* Remove temp files

* Updated outdated parts in snippets

* Correct async issue (#69)

* Bug Fix: Windows named file access error (#68)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

* Added tests. Corrected sensor engine "create_sensor" method

* Extended agent to have custom orientation and added checks on improper actions

* Aerial agent with recording update. Extension in IAgent interface and respective modifications in implementation

* three sensors for drones

* Sqlite graph (#63)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

---------

Co-authored-by: Copilot <[email protected]>

* sensors untested

* Added tests. Corrected sensor engine "create_sensor" method

* Sqlite graph (#63)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

---------

Co-authored-by: Copilot <[email protected]>

* Repetition due to commit merge mess up

* Remove repetition

* Update tests/sensor_test.py

Co-authored-by: Copilot <[email protected]>

* Max_d should be infinity when failing to find close enough nodes

* Aerial agent visual (#65)

* Add aerial agent visual

* Support mouse input for aerial agents, fix coord transform and prev_position record

* Aerial agent shape

* Fix typing problems

* Aerial agent visual (#66)

* Add aerial agent visual

* Support mouse input for aerial agents, fix coord transform and prev_position record

* Aerial agent shape

* Fix typing problems

* Aerial agent move range, up/down movement and simplify get neighbor

* Fix parameter style

* No / in path. Windows issue

* Corrected Aerial Sensor typing and implementation. Testing remaining

* Update of human input handling and aerial sensor default drawers

* Add agent before registering sensors. Otherwise error on aerial sensors

* Agent test suite and corrections in agent implementations or documentation as it was wrong

* Corrections is direction and cosine clipping

* Corrected tests for aerial agents

* Updated docs

* wrong plugin option

* Agent orientation needs to be normalized before setting

* Linetrsing creation isi pretty heavy. Optimize if it is not required. Also, typing should only have types not dataclasses

* Only warn when redefining custom sensor type. Change it in future versions to make it register only per context.

* Added license

* Deprecated setup.py

* Changes for release

* Added workflow

* No branch required

* Remove setup.py

* for vis

* Added artist API in docs

* Changed tempfile to dir for windows issue

* Added font size for render_text

* Remove temp files

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Jai Malegaonkar <[email protected]>
Co-authored-by: Brian <[email protected]>

* Changing version to ensure pypi compatibility

* Shiftto new patch because pip doesnt allow retroactive pacthes

* Change readme

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Jai Malegaonkar <[email protected]>
Co-authored-by: Brian <[email protected]>

* Merge direct hot fixes from main to dev (#73)

* Bug Fix: Windows named file access error (#68)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

* Added tests. Corrected sensor engine "create_sensor" method

* Extended agent to have custom orientation and added checks on improper actions

* Aerial agent with recording update. Extension in IAgent interface and respective modifications in implementation

* three sensors for drones

* Sqlite graph (#63)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

---------

Co-authored-by: Copilot <[email protected]>

* sensors untested

* Added tests. Corrected sensor engine "create_sensor" method

* Sqlite graph (#63)

* intial commit

* Typing extension and ranged lookup

* Bug in agent delete in record and logging. Add test to ensure coverage

* Changed sensors to accomodate sqlite engine

* Added tests and updated failing scenarios

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/GraphEngine/graph_engine.py

Co-authored-by: Copilot <[email protected]>

* No error raise. Use deafult error in sqlite del. Corrected angle wrapping in map sensor

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Update gamms/SensorEngine/sensor_engine.py

Co-authored-by: Copilot <[email protected]>

* Revert agent sensor calculation. It was correct

---------

Co-authored-by: Copilot <[email protected]>

* Repetition due to commit merge mess up

* Remove repetition

* Update tests/sensor_test.py

Co-authored-by: Copilot <[email protected]>

* Max_d should be infinity when failing to find close enough nodes

* Aerial agent visual (#65)

* Add aerial agent visual

* Support mouse input for aerial agents, fix coord transform and prev_position record

* Aerial agent shape

* Fix typing problems

* Aerial agent visual (#66)

* Add aerial agent visual

* Support mouse input for aerial agents, fix coord transform and prev_position record

* Aerial agent shape

* Fix typing problems

* Aerial agent move range, up/down movement and simplify get neighbor

* Fix parameter style

* No / in path. Windows issue

* Corrected Aerial Sensor typing and implementation. Testing remaining

* Update of human input handling and aerial sensor default drawers

* Add agent before registering sensors. Otherwise error on aerial sensors

* Agent test suite and corrections in agent implementations or documentation as it was wrong

* Corrections is direction and cosine clipping

* Corrected tests for aerial agents

* Updated docs

* wrong plugin option

* Agent orientation needs to be normalized before setting

* Linetrsing creation isi pretty heavy. Optimize if it is not required. Also, typing should only have types not dataclasses

* Only warn when redefining custom sensor type. Change it in future versions to make it register only per context.

* Added license

* Deprecated setup.py

* Changes for release

* Added workflow

* No branch required

* Remove setup.py

* for vis

* Added artist API in docs

* Changed tempfile to dir for windows issue

* Added font size for render_text

* Remove temp files

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Jai Malegaonkar <[email protected]>
Co-authored-by: Brian <[email protected]>

* Changing version to ensure pypi compatibility

* Shiftto new patch because pip doesnt allow retroactive pacthes

* Change readme

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Jai Malegaonkar <[email protected]>
Co-authored-by: Brian <[email protected]>

* Fix for graph cleanup. Patch update. cbor2 dependency changed

* Enable WAL model sqlite. Optimize commits during adds

* Remove unrequired class vars

* Artist updates #79 (#80)

* Artist updates #79

* artist updates

* artist updates

* artist updates

* Rendering optimization #78 (#81)

* Replace per-layer surfaces with single render surface + per-artist RGBA cache

* Reuse graph cache across camera moves via offset blit and zoom stretch

* Substitute short edges and skip sub-pixel edges and nodes in graph rendering

* Clean up docstring formatting in default_drawers

* Move cached artist rendering behind a RenderManager callback

* Merge get_culling_bounds and world_to_screen_scale into get_viewport

* Skip edge.linestring access for short or cached edges in graph rendering

* Move constants to init

* Revert graph render cache to lazy edge_line_points dict

* Apply skip/short edge optimization to render_map_sensor

* Avoid strip re-render and bilinear cost on zoom-out

* Clarify cached artist handler docstring

Co-authored-by: Copilot Autofix powered by AI <[email protected]>

* render agent optimization

Co-authored-by: Copilot <[email protected]>

* get_edges in a box

Co-authored-by: Copilot <[email protected]>

* edge caching in waiting_simulation

* edge finding optimizations

* Fix projection updates on window resize

* Remove will_draw from artist interfaces and use ArtistType for static cache routing

* Replace per-artist pixel caches with per-layer surfaces

* Guard render projection against zero screen size

Co-authored-by: Copilot Autofix powered by AI <[email protected]>

* Change layer cache artist_names from set to tuple

* cache mismatch bug fix

* Remove unused _static_layers from RenderManager

* Clamp render dimensions on resize

---------

Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>

* render images (#90)

* memory engine occlusion (#83)

* test push

* Add memory engine with structured stores and polygon store on graph engine

Implements the abstraction described in #8 so storage backends can be reused
across engines. Adds StoreType, refines IStore/IMemoryEngine, and ships
MemoryStore/SqliteStore backends. Wires the memory engine into the internal
context so ctx.ictx.memory is available after gamms.create_context().

Extends IGraphEngine with add_polygon/get_polygon/get_polygons/remove_polygon
which lazily back onto a polygon store from the memory engine. This is the
foundation for the occlusion work in #82.

* Add building / foliage occlusion for sensors (#82)

Polygons are extracted from OSM via extract_osm_polygons / populate_polygons_from_osm
and registered with the graph engine's polygon store. Each polygon is treated
as a vertical prism: the footprint is extruded between base and base+height,
creating trapezoidal lateral faces. When height is missing the OSM tags are
consulted (height, building:height, building:levels) and otherwise defaults to
a two-storey building (~6 m) so the API stays usable without metadata.

Adds the occlusion module with segment_blocked_by_polygon /
segment_blocked_by_polygons that test 3D ray segments against the prism faces
and the polygon top (relevant for drones flying over).

Adds OCCLUDED_* SensorType entries and matching sensor variants
(OccludedMapSensor, OccludedAgentSensor, OccludedAerialSensor,
OccludedAerialAgentSensor) that filter their parent sensors' results by
testing each visibility ray against the polygon store. Ground sensors use a
configurable observer_height (eye level) for the ray origin, while aerial
sensors use the agent's 3D position.

* Add tests for memory engine and occlusion

memory_engine_test.py covers MemoryStore CRUD, SQLite-backed store
persistence (round-trip via load_store), error paths for duplicate
names/keys, and the polygon store wired onto GraphEngine.

occlusion_test.py covers the geometric primitives (low/high rays,
top-face intersection, multi-polygon iteration, degenerate input) and
end-to-end OCCLUDED_RANGE / OCCLUDED_AGENT_RANGE / OCCLUDED_AERIAL
sensor behaviour against polygons registered with the graph engine.

* Store typing changed for base storage abstraction.

* Realign stores, graphs, sensors with new IStore abstraction.

Rewrites MemoryStore and SqliteStore against the schema-based IStore
without leaking graph-specific concerns into the storage layer. Both
graph backends keep their own optimizations and consume the store via a
small generic extension API plus an honest backend handle. Polygons now
live in the same engine-typed store as the graph and gain a bbox-indexed
range query; occluded sensors use it to pre-filter polygon candidates.
Sensor module split by behavioral group; occluded sensors collapse to
one general class per axis with ARC/RANGE wired as factory presets.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* Incorrect raised error. Need to investigate how it was passing before

* Revert. Error based on what gets processed first.

* Initial working refactor for store implementation

* polygon api

* Rendering optimization #78 (#81) (#88)

* Replace per-layer surfaces with single render surface + per-artist RGBA cache

* Reuse graph cache across camera moves via offset blit and zoom stretch

* Substitute short edges and skip sub-pixel edges and nodes in graph rendering

* Clean up docstring formatting in default_drawers

* Move cached artist rendering behind a RenderManager callback

* Merge get_culling_bounds and world_to_screen_scale into get_viewport

* Skip edge.linestring access for short or cached edges in graph rendering

* Move constants to init

* Revert graph render cache to lazy edge_line_points dict

* Apply skip/short edge optimization to render_map_sensor

* Avoid strip re-render and bilinear cost on zoom-out

* Clarify cached artist handler docstring



* render agent optimization



* get_edges in a box



* edge caching in waiting_simulation

* edge finding optimizations

* Fix projection updates on window resize

* Remove will_draw from artist interfaces and use ArtistType for static cache routing

* Replace per-artist pixel caches with per-layer surfaces

* Guard render projection against zero screen size



* Change layer cache artist_names from set to tuple

* cache mismatch bug fix

* Remove unused _static_layers from RenderManager

* Clamp render dimensions on resize

---------

Co-authored-by: Jinmin Lee <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>

* Created face type. Bug correction in height calculation. Created visualization

* Add api update

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <[email protected]>

* Correcthandling for missing columns

* Consistent behavior across stores

* Optimizing draws by selected retreival

* fixed occluded sensors + tests

* viewport retreival correction

* Remove claude files. Do not add to gitignore. instead avoid using   Add individual file(s) in groups of commits so that a specific update gets its own commit

* fix attempt, got rid of extra sensors, now accepting fov and range as input

* removed legacy functions and tested occluded sensors in game

* tested occlusion sensors in a game loop

* more tests

* tests

* manual fixes to sensors + vectorized iterator of faces

* Optimizing chunk construction

* grid test

* Correct doc string

* Correctly handle error raising

* Add obstacle face tests

* remove versbosity

* Rename or delete old files

* Memory tests and corrected sqlite store impl for consistency

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <[email protected]>

* Correction in color behavior

---------

Co-authored-by: Claude <[email protected]>
Co-authored-by: bridgesign <[email protected]>
Co-authored-by: Rohan Patil <[email protected]>
Co-authored-by: Jinmin Lee <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>

* Release br (#91)

* Release updates for v1.0.0

* updated workflow

* Refactor GitHub Actions workflow for Python package

* dev based tests

* Install for testing

* Issue with dependency resolv

* Removed deprecated test API

* I hatre python module loading

* Artist update (#92)

* _alpha access for all dynamic artists

* example update

* example update

* I hatre python module loading

---------

Co-authored-by: bridgesign <[email protected]>

* Refactor lazy loading function in __init__.py

Refactor lazy loading function to use a class-based approach for better encapsulation and module loading.

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Jai Malegaonkar <[email protected]>
Co-authored-by: Brian <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>
Co-authored-by: Jinmin Lee <[email protected]>
Co-authored-by: Mehul Sinha <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants