v / examples / pendulum-simulation
Raw file | 30 loc (23 sloc) | 655 bytes | Latest commit hash f6844e976
1module main
2
3import benchmark
4import sim
5import sim.args as simargs
6import sim.img
7
8fn main() {
9 args := simargs.parse_args(sequential: true)! as simargs.SequentialArgs
10
11 mut bmark := benchmark.start()
12 defer {
13 bmark.measure(@FN)
14 }
15
16 mut writer := img.ppm_writer_for_fname(args.filename, img.image_settings_from_grid(args.grid))!
17 defer {
18 writer.close()
19 }
20
21 handle_request := fn [mut writer] (request &sim.SimRequest) ! {
22 result := sim.compute_result(request)
23 pixel := img.compute_pixel(result)
24 return writer.handle_pixel(pixel)
25 }
26
27 sim.run(args.params, grid: args.grid, on_request: sim.SimRequestHandler(handle_request))
28
29 writer.write()!
30}