Bug area
Play Mode runtime
Severity
Blocker - cannot use the plugin
Reproducibility
Always
Workflow step where the issue happens
Unity version
6000.0.55f1
SIMPLE Unity Plugin version / branch / commit
main
GAMA version
2025-06
simple.webplatform branch / commit
main, lancé avec le .exe v4 qui vient d'être publié avec la main
Operating system
Windows
Package installation method
Git URL
GAMA model and experiment
model prey_predator_model_VR
import "Model 06.gaml"
species unity_linker parent: abstract_unity_linker {
string player_species <- string(unity_player);
int max_num_players <- 1;
unity_property up_default;
unity_property up_prey;
unity_property up_predator;
unity_property up_vegetation_cell;
list init_locations <- define_init_locations();
list define_init_locations {
return [{50.0,50.0,0.0}];
}
init {
do define_properties;
player_unity_properties <- [nil];
}
action define_properties {
unity_aspect default_aspect <- geometry_aspect(1.0,#gray,precision);
up_default <- geometry_properties("default","",default_aspect,#no_interaction,false);
unity_properties << up_default;
unity_aspect prey_aspect <- geometry_aspect(1.0,#gray,precision);
up_prey <- geometry_properties("prey","",prey_aspect,#no_interaction,false);
unity_properties << up_prey;
unity_aspect predator_aspect <- geometry_aspect(1.0,#gray,precision);
up_predator <- geometry_properties("predator","",predator_aspect,#no_interaction,false);
unity_properties << up_predator;
unity_aspect vegetation_cell_aspect <- geometry_aspect(1.0,#gray,precision);
up_vegetation_cell <- geometry_properties("vegetation_cell","",vegetation_cell_aspect,#no_interaction,false);
unity_properties << up_vegetation_cell;
}
// reflex send_geometries {
// do add_geometries_to_send(prey,up_prey);
// do add_geometries_to_send(predator,up_predator);
// do add_geometries_to_send(vegetation_cell,up_vegetation_cell);
// }
reflex send_geometries { list grass_food <- vegetation_cell collect each.food;
map<string, list> grass_atts <- ["food":: grass_food];
do add_geometries_to_send(prey, up_prey);
do add_geometries_to_send(predator, up_predator);
do add_geometries_to_send(
vegetation_cell,
up_vegetation_cell,
grass_atts
);
}
}
species unity_player parent: abstract_unity_player{
float player_size <- 1.0;
rgb color <- #red;
float cone_distance <- 10.0 * player_size;
float cone_amplitude <- 90.0;
float player_rotation <- 90.0;
bool to_display <- true;
float z_offset <- 2.0;
aspect default {
if to_display {
if selected {
draw circle(player_size) at: location + {0, 0, z_offset} color: rgb(#blue, 0.5);
}
draw circle(player_size/2.0) at: location + {0, 0, z_offset} color: color ;
draw player_perception_cone() color: rgb(color, 0.5);
}
}
}
experiment vr_xp parent:"prey_predator" autorun: false type: unity {
float minimum_cycle_duration <- 0.1;
string unity_linker_species <- string(unity_linker);
list displays_to_hide <- ["main_display","Number of preys","Number of predators","main_display","Number of preys","Number of predators"];
float t_ref;
action create_player(string id) {
ask unity_linker {
do create_player(id);
}
}
action remove_player(string id_input) {
if (not empty(unity_player)) {
ask first(unity_player where (each.name = id_input)) {
do die;
}
}
}
output {
display main_display_VR parent:main_display{
species unity_player;
event #mouse_down{
float t <- gama.machine_time;
if (t - t_ref) > 500 {
ask unity_linker {
move_player_event <- true;
}
t_ref <- t;
}
}
}
}
}
Expected behavior
Live run when clicking Play Mode or the preview to charge when initiated
Actual behavior
When everything connected, soit si je lance une previw ça tourne dans le vide pdt un temps infini, soit si je fais play cela fait la même chose, ça tourne dans le vide pendant un temps infini aussi.
Voir le message précis du script qui tourne en boucle et qui bloque en PJ.
Et aucun objet n'a jamais été importé ou quoi que ce soit, rien n'est apparu.
Steps to reproduce
Open Unity, package installer, middlexare first, then the Vr_XP and launche au Play Mode or a Unity Preview : charging indefinetly.
Stack status when the issue happened
Ports and endpoints
No response
Species settings involved
No response
Logs and error messages
Middleware log :
info core·index Starting the SIMPLE Webplatform !
info infra·StaticServer =========================================
Webplatform started and is accessible
http://localhost:5173
=========================================
info monitor·MonitorServ… Creating monitor server on: ws://0.0.0.0:8001
info multi·PlayerManager Creating monitor server on: ws://0.0.0.0:8080
warning simulation·ModelMan… Couldn't find settings file in folder C:\Users\LEGION\Desktop\oppo\simple.webplatform\learning-packages
info android·AdbManager Connect to device's ADB server
info android·ScrcpyServer Using codec h265
info android·ScrcpyServer Creating video stream server on: ws://0.0.0.0:8082
info android·ScrcpyServer Creating monitor server on: ws://0.0.0.0:8082
info core·Controller Not running on M2L2 (Mac Mini) hardware — skipping UPS connection
info core·Controller Session timer started — shutdown sequence armed for 3h if on battery
info sim·GamaConnector Connected to Gama Server on ws://localhost:1000
warning android…EvilScan Disable device auto-scan because server is not in the default IP range
Screenshots or videos
tailwind.config.js
package-lock.json
postcss.config.js
package.json
vitest.config.ts.txt
.gitignore.txt
biome.json
[vite.backend.config.ts.txt](https://github.com/user-
attachments/files/30929801/vite.backend.config.ts.txt)
Workaround
No response
Reporter checklist
Bug area
Play Mode runtime
Severity
Blocker - cannot use the plugin
Reproducibility
Always
Workflow step where the issue happens
Unity version
6000.0.55f1
SIMPLE Unity Plugin version / branch / commit
main
GAMA version
2025-06
simple.webplatform branch / commit
main, lancé avec le .exe v4 qui vient d'être publié avec la main
Operating system
Windows
Package installation method
Git URL
GAMA model and experiment
model prey_predator_model_VR
import "Model 06.gaml"
species unity_linker parent: abstract_unity_linker {
string player_species <- string(unity_player);
int max_num_players <- 1;
unity_property up_default;
unity_property up_prey;
unity_property up_predator;
unity_property up_vegetation_cell;
list init_locations <- define_init_locations();
list define_init_locations {
return [{50.0,50.0,0.0}];
}
init {
do define_properties;
player_unity_properties <- [nil];
}
action define_properties {
unity_aspect default_aspect <- geometry_aspect(1.0,#gray,precision);
up_default <- geometry_properties("default","",default_aspect,#no_interaction,false);
unity_properties << up_default;
unity_aspect prey_aspect <- geometry_aspect(1.0,#gray,precision);
up_prey <- geometry_properties("prey","",prey_aspect,#no_interaction,false);
unity_properties << up_prey;
unity_aspect predator_aspect <- geometry_aspect(1.0,#gray,precision);
up_predator <- geometry_properties("predator","",predator_aspect,#no_interaction,false);
unity_properties << up_predator;
unity_aspect vegetation_cell_aspect <- geometry_aspect(1.0,#gray,precision);
up_vegetation_cell <- geometry_properties("vegetation_cell","",vegetation_cell_aspect,#no_interaction,false);
unity_properties << up_vegetation_cell;
}
// reflex send_geometries {
// do add_geometries_to_send(prey,up_prey);
// do add_geometries_to_send(predator,up_predator);
// do add_geometries_to_send(vegetation_cell,up_vegetation_cell);
// }
reflex send_geometries { list grass_food <- vegetation_cell collect each.food;
map<string, list> grass_atts <- ["food":: grass_food];
do add_geometries_to_send(prey, up_prey);
do add_geometries_to_send(predator, up_predator);
do add_geometries_to_send(
vegetation_cell,
up_vegetation_cell,
grass_atts
);
}
}
species unity_player parent: abstract_unity_player{
float player_size <- 1.0;
rgb color <- #red;
float cone_distance <- 10.0 * player_size;
float cone_amplitude <- 90.0;
float player_rotation <- 90.0;
bool to_display <- true;
float z_offset <- 2.0;
aspect default {
if to_display {
if selected {
draw circle(player_size) at: location + {0, 0, z_offset} color: rgb(#blue, 0.5);
}
draw circle(player_size/2.0) at: location + {0, 0, z_offset} color: color ;
draw player_perception_cone() color: rgb(color, 0.5);
}
}
}
experiment vr_xp parent:"prey_predator" autorun: false type: unity {
float minimum_cycle_duration <- 0.1;
string unity_linker_species <- string(unity_linker);
list displays_to_hide <- ["main_display","Number of preys","Number of predators","main_display","Number of preys","Number of predators"];
float t_ref;
action create_player(string id) {
ask unity_linker {
do create_player(id);
}
}
action remove_player(string id_input) {
if (not empty(unity_player)) {
ask first(unity_player where (each.name = id_input)) {
do die;
}
}
}
output {
display main_display_VR parent:main_display{
species unity_player;
event #mouse_down{
float t <- gama.machine_time;
if (t - t_ref) > 500 {
ask unity_linker {
move_player_event <- true;
}
t_ref <- t;
}
}
}
}
}
Expected behavior
Live run when clicking Play Mode or the preview to charge when initiated
Actual behavior
When everything connected, soit si je lance une previw ça tourne dans le vide pdt un temps infini, soit si je fais play cela fait la même chose, ça tourne dans le vide pendant un temps infini aussi.
Voir le message précis du script qui tourne en boucle et qui bloque en PJ.
Et aucun objet n'a jamais été importé ou quoi que ce soit, rien n'est apparu.
Steps to reproduce
Open Unity, package installer, middlexare first, then the Vr_XP and launche au Play Mode or a Unity Preview : charging indefinetly.
Stack status when the issue happened
Ports and endpoints
No response
Species settings involved
No response
Logs and error messages
Screenshots or videos
tailwind.config.js
package-lock.json
postcss.config.js
package.json
vitest.config.ts.txt
.gitignore.txt
biome.json
[vite.backend.config.ts.txt](https://github.com/user-
attachments/files/30929801/vite.backend.config.ts.txt)
Workaround
No response
Reporter checklist