// Select a 2D Simulation
using octree_traits = aether::octree_traits<aether::vec2i64>;
int main(int argc, char *argv[]){
aether::log::init("AE_Manager", hadean::pid::get());
aether::log::set_level(aether::log::level::INFO);
// Setup your simuation Configuration
struct arguments arguments;
arguments.cell_level = 6;
arguments.flags = FAST_MODE | PHASE_BARRIERS;
argument_parse(argc, argv, &arguments);
// Generate arguement stucture for Manager initialisation
auto static_args = arguments.to_octree_params<octree_traits>();
auto manager = aether::build_entity_simulation_manager<user_cell_state_impl>(arguments.workers, static_args);
for (const auto& muxer : arguments.muxers) {
manager.add_muxer(muxer);
for (uint64_t tick = 0; ; tick++) {
auto loop_time = timer::get();
AETHER_LOG(INFO)(fmt::format("Tick {} Complete!", tick));
loop_time = timer::add(loop_time, static_cast<std::chrono::nanoseconds>(1s) / static_args.ticks_per_second);
timer::sleep_until(loop_time);