# Project Diary
("dagboken")
> The diary should describe in chronological order the phases of work in the project work, joint
and individual work in various tasks performed, problems that have arisen, suggestions of
various solutions and reflections about them and any solution implemented. Other
information that can be included is meetings, weekly planning, sub-objectives, etc. The diary
should be kept relatively continuously and the activities for a particular week have to be
written before the end of the week.
Describes, in chronological order, what has happened during the project.
[TOC]
## Week n [Example]
### Meetings
* Weekly meeting 1 (link to meeting minutes) [time=Mon, Jan 6, 2023 2:19 PM]
* Weekly meeting 2 (link to meeting minutes) [time=Wed, Jan 8, 2023 1:10 PM]
* Extra emergency session to discuss deadline [time=Fri, Jan 10, 2023 12:10 PM]
### Closed issues
* Feature XYZ -- [#1](https://github.com/martinjonsson01/recs/issues/1) [time=Mon, Jan 6, 2023] [name=Person A]
### Events
* We reached [big milestone]!
* [A problem] was encountered, and using [a solution] we solved it.
* [Another problem] occurred, which we haven't figured out a solution to yet. We have discussed [solution A] and also [solution B].
## Week 1
### Meetings
* Weekly meeting 1 [Meeting Minutes](https://hackmd.io/RbkY9oCCTvSVGEmLeSAHXg) [time=Tue, Jan 17, 2023 10:00 AM]
* Weekly meeting 2 [Meeting Minutes](https://hackmd.io/fVwmiJJxQkeJvbdGA5yN1g) [time=Fri, Jan 20, 2023 1:15 PM]
### Closed issues
* Research social and ethical aspects of our product -- [time=Fri, Jan 20, 2023] [name=Linn Österlund]
* Research benefits of Rust -- [time=Fri, Jan 20, 2023] [name=Martin Jonsson]
* Research Amdahls law -- [time=Fri, Jan 20, 2023] [name=Mathias Prétot]
* Research downsides of and ECS engine -- [time=Fri, Jan 20, 2023] [name=Christoffer Persson]
* Research parts of an ECS engine -- [time=Fri, Jan 20, 2023] [name=Martin Jonsson]
* Create schedule graph -- [time=Fri, Jan 20, 2023] [name=Martin Jonsson]
* Research applications of an ECS engine -- [time=Fri, Jan 20, 2023] [name=Jacob Bredin]
* Research ECS history -- [time=Fri, Jan 20, 2023] [name=Edvin Nilsson]
### Events
* We created a group contract for all members to follow.
* Assigned roles to group members.
* Locked a preliminary schedule for meetings. Mondays 8:10, Fridays 13:00.
* Individually researched different important aspects of the project.
* Presented the knowledge obtained to the group during the second meeting.
* We were unable to secure a meeting with our supervisor however we are in the contact with them and will hopefully be able to schedule this meeting to Monday next week.
## Week 2
### Meetings
* Weekly meeting 3 [Meeting Minutes](https://hackmd.io/UufOAjWTSC6L7o1BPHwW-g) [time=Mon, Jan 23, 2023 3:00 PM]
* Weekly meeting 4 [Meeting Minutes](https://hackmd.io/aL6JfTwRSQ-vnSHDg3EhyQ) [time=Fri, Jan 27, 2023 1:00 PM]
### Closed issues
* Each person found and researched a source which could be referenced to gain a better understanding of the subject.
* Writing has continued on the project report however since the review of these are scheduled for next week no issues relating to these have been closed
### Events
* Met supervisor for the first time.
* Shared our perception of the project structure and content to the supervisor.
* Adviced by the supervisor to further research relevant topics and understand research papers.
* Changed meeting schedule to coincide with timeslots where supervisor is available. 15:15 Monday, 13:00 Friday.
* Preliminary schedule of meeting with supervisor every other week with the expectation that these instances will increase the closer the project deadline we find us.
* Sent in link to our project page to examiners according to the assignment deadline on Canvas.
* Stated more concretely the aspects of the engine that should be developed during the prototyping phase.
* Continued writing the project plan and established that throughout next week individual review and comments of the completed report should be done ending with a group review.
* Contribution report was established to be filled in continually throughout the project each friday.
## Week 3
### Meetings
* Weekly meeting 5 [Meeting Minutes](https://hackmd.io/wnvLeFpoTA-BXOd1CIHl7g) [time=Mon, Jan 30, 2023 3:15 PM]
* Weekly meeting 6 [Meeting Minutes](https://hackmd.io/6KIf_avgQP2RHSPjsG0stw) [time=Fri, Feb 3, 2023 1:00 PM]
### Closed issues
* First draft Project plan: Background: ECS history -- [time=Fri, Feb 3, 2023] [name=Edvin Nilsson]
* First draft Project plan: Background: ECS relation to OOP -- [time=Fri, Feb 3, 2023] [name=Jacob Bredin]
* First draft Project plan: Purpose -- [time=Fri, Feb 3, 2023] [name=Christoffer Persson]
* First draft Project plan: Method: Prototyping -- [time=Fri, Feb 3, 2023] [name=Christoffer Persson]
* First draft Project plan: Limitations -- [time=Fri, Feb 3, 2023] [name=Mathias Prétot]
* First draft Project plan: Background: ECS advantages/ disadvantages -- [time=Fri, Feb 3, 2023] [name=Christoffer Persson]
* First draft Project plan: Method: Benchmarking and Testing -- [time=Fri, Feb 3, 2023] [name=Edvin Nilsson]
* Second draft Project plan: Spacing betwwen author names -- [time=Fri, Feb 3, 2023] [name=Martin Jonsson]
* Research LiNDAs compatibility with ECS -- [time=Fri, Feb 3, 2023] [name=Martin Jonsson]
* First draft Project plan: Method: Framework and languages -- [time=Fri, Feb 3, 2023] [name=Martin Jonsson]
* First draft Project plan: Background: What is ECS -- [time=Fri, Feb 3, 2023] [name=Jacob Bredin]
* First draft Project plan: Social and Ethical Aspects -- [time=Fri, Feb 3, 2023] [name=Linn Österlund]
* First draft Project plan: Method: Agile Workflow -- [time=Fri, Feb 3, 2023] [name=Linn Österlund]
* Second draft Project plan: Move sections of Problem Statement to backround -- [time=Fri, Feb 3, 2023] [name=Martin Jonsson]
* Second draft Project plan: Reformulate purpose -- [time=Fri, Feb 3, 2023] [name=Christoffer Persson]
* Find modern research papers on scheduling -- [time=Fri, Feb 3, 2023] [name=Martin Jonsson]
* Find ECS introduction video/ paper to send to supervisor -- [time=Fri, Feb 3, 2023] [name=Jacob Bredin]
* First draft Project plan: Problem Statement -- [time=Fri, Feb 3, 2023] [name=Martin Jonsson]
### Events
* Supervisor quickly read a rough first draft of the project plan and gave insight. These were discussed and addressed to the best of our ability.
* The project itself and the scope has been better concretized and understood!
* Individual and group reviews of the project plan were made and comments were discussed and resolved.
* Changed had to be made from the first draft to maintain a good flow throughout the project plan. These changes are underway!
* A second draft with some pieces and structure not yet finished has been sent to supervisor.
* Next week we determined that actual development begins and the finishing touches on the planning report made!
## Week 4
### Meetings
* Weekly meeting 7 [Meeting Minutes](https://hackmd.io/hpxDYPBWR4OhsvdGnU8z-g) [time=Mon, Feb 6, 2023 3:15 PM]
* Weekly meeting 8 [Meeting Minutes](https://hackmd.io/XldW8DEfRLyE6zAidmS0vQ) [time=Fri, Feb 9, 2023 1:00 PM]
### Closed issues
* First draft Project plan: Background: ECS history -- [time=Thu, Feb 9, 2023] [name=Edvin Nilsson]
* Project Plan hand-in -- [time=Thu, Feb 9, 2023]
* Project Plan Introduction to method section -- [time=Thu, Feb 9, 2023] [name=Linn Österlund]
* Project Plan: Method: N-body Case Study, Profiling tool -- [time=Thu, Feb 9, 2023] [name=Christoffer Persson]
* Project Plan moving sections on ECS to ending of introduction -- [time=Thu, Feb 9, 2023] [name=Martin Jonsson]
* Project Plan finalized schedule section -- [time=Thu, Feb 9, 2023] [name=Mathias Prétot]
* Project Plan rewritten background introduction -- [time=Thu, Feb 9, 2023] [name=Jacob Bredin]
### Events
* Finished structure and content of project plan
* Supervisor gave OK to the plan
* Final touches and hand-in of project plan!
* Preliminary method for how to continously write the report decided upon
* Different prototypes were assigned to groups of team members
* Method of adding and approving issues on the project board decided upon.
* We were not able to implement code as was planned during however we have begun fiddling with Rust and next week the focus will be on implementation!
## Week 5
### Meetings
* Weekly meeting 9 [Meeting Minutes](https://hackmd.io/ohrWIIwxQByQQPAyQ-Merw) [time=Mon, Feb 13, 2023 3:15 PM]
* Weekly meeting 10 [Meeting Minutes](https://hackmd.io/Jb7Yv3KpRdWu8qL-MsZthw) [time=Fri, Feb 17, 2023 1:00 PM]
### Closed issues
* Scheduler Prototype: System trait -- [time=Fre, Feb 17, 2023] [name=Martin Jonsson]
* Scheduler Prototype: System container -- [time=Fre, Feb 17, 2023] [name=Martin Jonsson]
* Scheduler Prototype: Define system inputs -- [time=Fre, Feb 17, 2023] [name=Martin Jonsson]
* Component Storage Prototype: Explore sparse sets -- [time=Fre, Feb 17, 2023] [name=Jacob Bredin]
* Component Storage Prototype: Explore entity archetypes -- [time=Fre, Feb 17, 2023] [name=Jacob Bredin]
* Querying Prototype: Basic Querying -- [time=Thu, Feb 17, 2023] [name=Mathias Prétot][name=Edvin Nilsson]
* Component Storage Prototype: Explore table component storage -- [time=Thu, Feb 17, 2023] [name=Linn Österlund]
### Events
* Implementation has proceeded during the week however we might need to extend the prototype deadline a week. Will be decided upon in the coming week given the amount of work left.
* Need to check with examiners if portions of the text in project plan can be reused in the final report. A message has been sent
* First draft is coming up faster than expected. Next week, time will be allocated to edit and expand upon what exists in the first draft. Monday the week after that the text will be sent to both the other group and supervisors from chalmers library.
## Week 6
### Meetings
* Weekly meeting 11 [Meeting Minutes](https://hackmd.io/lNySKUt8Qp-dHJJCg75-Cg) [time=Mon, Feb 20, 2023 3:15 PM]
* Weekly meeting 12 [Meeting Minutes](https://hackmd.io/NrCraODHQTOOQjdU5HZ56w) [time=Fri, Feb 24, 2023 1:00 PM]
### Closed issues
* Scheduler Prototype: Run registered systems -- [time=Fre, Feb 24, 2023] [name=Martin Jonsson]
* Scheduler Prototype: Run system in different threads: Rayon -- [time=Fre, Feb 24, 2023] [name=Christoffer Persson]
* Scheduler Prototype: Run single system in different threads -- [time=Fre, Feb 24, 2023] [name=Christoffer Persson]
* Thesis: Transfer relevant parts of project report to thesis -- [time=Fre, Feb 24, 2023] [name=Christoffer Persson]
* Component Storage Prototype: Sparse Set implementation -- [time=Fre, Feb 24, 2023] [name=Linn Österlund, Jacob Bredin]
### Events
* Work has continued with the protypes however progress has been slower than we would have liked.
* First draft of thesis sent to supervisor and opposing group in the supervision session 1
* We have decided to move the ending of prototyping phase two weeks from now and will begin working on the MVP a week and a half from now. This is due to us finding it more difficult than expected to implement the three parts being prototyped. Hopefully this will prove to be a benefit while working on integration and the product since many issues will have been explored and can now be avoided.
* We will make more of an effort to ask for help to expedite progress and limit the amount of time members find themselves stuck on an issue.
* We have divided half-time presentation, opposition and final presentation between members.
* Supervisor has asked for us to present status of the project and to review half-time presentation before it is time to present. This will be done in the week after the next.
## Week 7
### Meetings
* Weekly meeting 13 [Meeting Minutes](https://hackmd.io/NrCraODHQTOOQjdU5HZ56w) [time=Mon, Feb 27, 2023 3:15 PM]
* Weekly meeting 14 [Meeting Minutes](https://hackmd.io/Q9p4KdBYRlCTwWNAq_m3yQ) [time=Fri, Mar 03, 2023 11:30 PM]
### Closed issues
* Scheduler Prototype: Run systems in different threads: crossbeam -- [time=Fri, Mar 03, 2023] [name=Martin Jonsson]
* Scheduler Prototype: Mutable world access to disjoint component sets -- [time=Fri, Mar 03, 2023] [name=Martin Jonsson, Christoffer Persson]
### Events
* Prototyping phase is completing and next week work on MVP will begin.
* One representative each from the prototyping groups will join work on the MVP
* Peer-review went well and we gained some feedback we would like to implement into our report.
* Half time Presentation is more or less ready and some feedback has been received from supervisor
## Week 8
### Meetings
* Weekly meeting 15 [Meeting Minutes](https://hackmd.io/7zWwlSF3QWem-guiBt_Q6w) [time=Mon, Mar 06, 2023 3:15 PM]
* Weekly meeting 16 [Meeting Minutes](https://hackmd.io/SotbF_oiQYijI785JkKPeA) [time=Fri, Mar 10, 2023 01:00 PM]
### Closed issues
* Querying Prototype: Mutable/Immutable Components Access -- [time=Fre, Mar 10, 2023] [name=Mathias Prétot]
* Querying Prototype: Multiple component types -- [time=Fre, Mar 10, 2023] [name=Edvin Nilsson]
* Querying Prototype: Querying filters -- [time=Fre, Mar 10, 2023] [name=Edvin Nilsson]
* MVP: Boilerplate -- [time=Fre, Mar 10, 2023] [name=Edvin Nilsson, Jacob Bredin, Martin Jonsson]
### Events
* Half-time presentation performed. Seemed to have gone well.
* Discussion with Library personell regarding some smaller questions about the thesis. They also went through the way we reference and found no major issues.
* Work started on MVP and boilerplate was completed.
* Issues were created regarding feedback from peer-review session and some work has been done to incorporate these into the thesis.
* A tool that could be used and integrated as a replacement of our own implementation was found. We resolved that since this satisfies what we wanted from our own profiling tool this will no longer be implemented. No issues should arise from this and time can be better spent elsewhere. Especially since we are behind our preliminary schedule in the project plan.
* This week and the next will and has seen some impact on time spent on the project. This since members have needed to spend time preparing for the upcoming exams. Next weeks Monday meeting has been cancelled and the Friday meeting will only occur if any significant topics needs to be covered.
## Week 9
### Meetings
* None
### Closed issues
* MVP: Add logging integration -- [time=Fre, Mar 17, 2023] [name=Martin Jonsson]
* Scheduling Prototype: Correct System scheduling -- [time=Fre, Mar 17, 2023] [name=Martin Jonsson]
* Scheduling Prototype: Generate Schedule DAG #2 -- [time=Fre, Mar 17, 2023] [name=Martin Jonsson]
* Scheduling Prototype: Generate Schedule DAG #1 -- [time=Fre, Mar 17, 2023] [name=Christoffer Persson]
* Scheduling Prototype: Benchmark single threaded scheduler against multi-threaded -- [time=Fre, Mar 17, 2023] [name=Martin Jonsson]
### Events
* No meetings this week since it was exam week.
* Some progress has been made regarding the MVP and thesis by members who had time. Time spent will increase in the coming week.
* Some issues that were in-review but not accepted from the prototyping phase has been moved to accepted.
## Week 10
### Meetings
* Weekly meeting 17 [Meeting Minutes](https://hackmd.io/9UOeZOrCSeeoYEyjYXuYOg) [time=Mon, Mar 20, 2023 10:00 AM]
* Weekly meeting 18 [Meeting Minutes](https://hackmd.io/htd4FTq9S96klMxvHDgu_w) [time=Fri, Mar 24, 2023 01:00 PM]
### Closed issues
* Thesis: Prototype scheduler results -- [time=Fre, Mar 24, 2023] [name=Christoffer Persson]
* Thesis: Clarify difference between Querying and Foreign entity access in problem formulation -- [time=Fre, Mar 24, 2023] [name=Christoffer Persson]
* Prototype data structures: Archetype implementation -- [#26](https://github.com/martinjonsson01/recs/issues/26) [time=Fre, Mar 24, 2023] [name=Jacob Bredin, Linn Österlund]
* Thesis: Check if sources exist for assumptions in theory section -- [time=Fre, Mar 24, 2023] [name=Mathias Prétot]
* Thesis: Address nitpicks from peer-review session -- [time=Fre, Mar 24, 2023] [name=Mathias Prétot]
* Thesis: More concretely specify which parts of the method supports which subproblem -- [time=Fre, Mar 24, 2023] [name=Mathias Prétot]
* Thesis: Write about MVP in method section -- [time=Fre, Mar 24, 2023] [name=Mathias Prétot]
* Thesis: Check references list for issues -- [time=Fre, Mar 24, 2023] [name=Mathias Prétot]
* MVP: Intergrate scheduler prototype into MVP -- [#36](https://github.com/martinjonsson01/recs/issues/36) [time=Fre, Mar 24, 2023] [name=Martin Jonsson]
* MVP: System tick barrier -- [#54](https://github.com/martinjonsson01/recs/issues/54) [time=Fre, Mar 24, 2023] [name=Martin Jonsson]
* MVP: Integrate with Tracy profiling tool -- [#40](https://github.com/martinjonsson01/recs/issues/40) [time=Fre, Mar 24, 2023] [name=Martin Jonsson]
### Events
* Questions were brought by the supervisor regarding our concurrency solution. We decided to both include an additional case study to more thouroughly evaluate all parts of our engine. The result section that specifies how our solution works will be sent for review next Monday. Hopefully this will clarify some of the questions raised.
* Most of the results from the prototyping phase now exists in the thesis however we will continually be working on this from now on. First draft due 13 april.
* MVP has been completed
* Issues concerning engine development have been created and an introduction to the MVP will be presented on Monday. Work will begin next week.
## Week 11
### Meetings
* Weekly meeting 19 [Meeting Minutes](https://hackmd.io/1XyDt5rbT7GFWkWrVU2Bug) [time=Mon, Mar 27, 2023 8:00 AM]
* Weekly meeting 20 [Meeting Minutes](https://hackmd.io/t9xCnRhvSoeFZv5Go2Huig) [time=Fri, Mar 31, 2023 01:00 PM]
### Closed issues
* Intergrate query filtering into MVP -- [#37](https://github.com/martinjonsson01/recs/issues/37) [time=Fre, Mar 31, 2023] [name=Edvin Nilsson]
* Systems schedule reordering -- [#48](https://github.com/martinjonsson01/recs/issues/48) [time=Fre, Mar 31, 2023] [name=Christoffer Persson]
* Implement entity archetypes into MVP -- [#38](https://github.com/martinjonsson01/recs/issues/38) [time=Fre, Mar 24, 2023] [name=Jacob Bredin]
### Events
* Since the group needed to view presentations for the choices of masters programs a supervisor meeting could not be held.
* Thesis sent to supervisor with some questions regarding contents.
* Planning report has been reviewed by examiner
* Engine development and thesis work has continued
* A more concrete idea of which issues are neccessary for us to be able to consider the project "mostly" done has been established.
## Week 12
### Meetings
* Weekly meeting 20 [Meeting Minutes](https://hackmd.io/W_7wum3GS2qNlA9f33fQdQ) [time=Tue, Apr 04, 2023 9:00 AM]
### Closed issues
* System iteration parallelism -- [#19](https://github.com/martinjonsson01/recs/issues/19) [time=Fre, Apr 07, 2023] [name=Martin Jonsson]
* Allow systems to access components from multiple entities at once -- [#50](https://github.com/martinjonsson01/recs/issues/50) [time=Fre, Apr 07, 2023] [name=Edvin Nilsson]
* N-body case study -- [#38](https://github.com/martinjonsson01/recs/issues/50) [time=Fre, Apr 07, 2023] [name=Martin Jonsson]
* Rendering System -- [#61](https://github.com/martinjonsson01/recs/issues/61) [time=Fre, Apr 07, 2023] [name=Martin Jonsson, Mathias Prétot]
### Events
* Supervisor provided feedback on thesis draft which provided insights on areas of improvement
* Examiner provided feedback on planning report and will be considered when continuing to write on thesis
* Friday meeting cancelled because of easter
* Schedule reordering algorithm was found to be broken. Fixed (hopefully) by slightly altering the schedule generation and creating tests which should catch scheduling issues in the future.
## Week 13
### Meetings
* Weekly meeting 21 [Meeting Minutes](https://hackmd.io/BQm0hPOPRrSLm2_qTQ6IZw) [time=Tue, Apr 11, 2023 9:00 AM]
* Weekly meeting 22 [Meeting Minutes](https://hackmd.io/bqHcX_ykTL2TLBQx3eC4dw) [time=Fri, Apr 14, 2023 01:00 PM]
### Closed issues
* Restructure section in introduction -- [time=Fre, Apr 14, 2023] [name=Christoffer Persson]
* Dynamic archetypes -- [#72](https://github.com/martinjonsson01/recs/issues/72) [time=Fre, Apr 14, 2023] [name=Christoffer Persson]
* Method: Combine case studies to one section -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Explain difference between concurrency and parallelism -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Clearly describe "system execution safety" -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Write about results: integrating prototypes into MVP -- [time=Fre, Apr 14, 2023] [name=Martin Jonsson]
* Section in introduction about the comparison between ECS and OOP structure -- [time=Fre, Apr 14, 2023] [name=Linn Österlund]
* Expand upon what "cache locality issues" means -- [time=Fre, Apr 14, 2023] [name=Martin Jonsson]
* Move "Addition and Removal of Components and Entities" to "Component Data Storage" -- [time=Fre, Apr 14, 2023] [name=Martin Jonsson]
* Summarize some of the more interesting parts of history to be moved up to the introduction section for improved context -- [time=Fre, Apr 14, 2023] [name=Linn Österlund]
* Elaborate Method: Prototyping to more concretely define each part of the prototyping task -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Method: Expand on N-body case study -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Method: Move MVP to Querying section -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Look over usage of the term "correctness" -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Write about results: Prototype querying -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Change "correctness" to more fitting word -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
* Engine development section in method -- [time=Fre, Apr 14, 2023] [name=Mathias Prétot]
### Events
* Supervisor provided feedback on thesis draft which provided insights on areas of improvement concerning the background section of the thesis.
* Focus this week concerning the thesis was on the background section and most issues concerning this were completed.
* Next week work on the thesis will focus on a larger port of the thesis since it should be nearing completion. More specifically the introduction, results and discussion chapters.
* Next week is the second occurance of supervision with "fackspråk". Thesis and some questions sent to them in expectation of this.
## Week 14
### Meetings
* Weekly meeting 23 [Meeting Minutes](https://hackmd.io/FwjoxN7WSWmz8IrS7qHXvQ) [time=Tue, Apr 18, 2023 9:00 AM]
* Weekly meeting 24 [Meeting Minutes](https://hackmd.io/RQC7rwdXR2mulUHLSOl7gg) [time=Fri, Apr 14, 2023 01:00 PM]
### Closed issues
* Allow systems to access the iterated entity -- [#66](https://github.com/martinjonsson01/recs/issues/66) [time=Fre, Apr 23, 2023] [name=Linn Österlund]
* Describe what a synchronization primitive is --[time=Fre, Apr 23, 2023] [name=Mathias Prétot]
* RECS overview in results -- [time=Fre, Apr 23, 2023] [name=Martin Jonsson]
* Explain what simulations are/ are used for in introduction -- [time=Fre, Apr 23, 2023] [name=Mathias Prétot]
* Implement ECS bench suite -- [#106](https://github.com/martinjonsson01/recs/issues/106) [time=Fre, Apr 23, 2023] [name=Martin Jonsson]
* Add running example to background -- [time=Fre, Apr 23, 2023] [name=Christoffer Persson]
* Explain how querying works -- [time=Fre, Apr 23, 2023] [name=Martin Jonsson]
* Describe system execution safety validation -- [time=Fre, Apr 23, 2023] [name=Martin Jonsson]
* Background: Describe archetypes -- [time=Fre, Apr 23, 2023] [name=Martin Jonsson]
* Result: Write about how the rendering and simulation are run independent of each other -- [time=Fre, Apr 23, 2023] [name=Mathias Prétot]
* Format code blocks nicely -- [time=Fre, Apr 23, 2023] [name=Mathias Prétot]
* Elaborate about profiling integration -- [time=Fre, Apr 23, 2023] [name=Mathias Prétot]
### Events
* Supervisor provided feedback on thesis draft which were converted into issues
* Work with finalizing thesis and benchmarking underway
* Optimizations were found to be neccessary and some were implemented
* Tried to have a meeting with fackspråk but due to sickness this was pushed to next week.
## Week 15
### Meetings
* Weekly meeting 25 [Meeting Minutes](https://hackmd.io/ewp0UzK6SOSUHFnkeadLkA) [time=Tue, Apr 25, 2023 8:00 AM]
* Weekly meeting 26 [Meeting Minutes](https://hackmd.io/Q8hEGorGRFi6u84VtU_yMg) [time=Fri, Apr 28, 2023 01:00 PM]
### Closed issues
* Extract archetypes module -- [#101](https://github.com/martinjonsson01/recs/issues/101) [time=Fre, Apr 28, 2023] [name=Martin Jonsson]
* Results: Descrive why the schedule does not have to be regenerated every tick -- [time=Fre, Apr 28, 2023] [name=Christoffer Persson]
* Simplify Profiling examples -- [time=Fre, Apr 28, 2023] [name=Mathias Prétot]
* Results: Explain thought pattern behind scheduler implementation -- [time=Fre, Apr 28, 2023] [name=Christoffer Persson]
### Events
* Supervisor again provided feedback on sections of the thesis
* Work has continued with both the thesis and implementation. Thesis seems to be progressing in a way where we should be finished before the deadline. There are however some benchmarking that has not been completed and some features necessary for these. At the moment everything seems to be feasible to complete before the deadline.
* Had a meeting with fackspråk and they answered some of our questions regarding structure and contents of some sections of the thesis.
## Week 16
### Meetings
* Weekly meeting 27 [Meeting Minutes](https://hackmd.io/7Qz2Egq3Rq-oI7AbbYtFuw) [time=Tue, May 02, 2023 8:00 AM]
* Weekly meeting 28 [Meeting Minutes](https://hackmd.io/IIvLkXC3RNS9tPKEOVhmKg) [time=Fri, May 05, 2023 01:00 PM]
### Closed isues
* Reformulate intro to chapter: The RECS engine -- [time=Fri, May 05, 2023] [name=Christoffer Persson, Linn Österlund, Jacob Bredin]
* Rephrase to avoid use of "entity type" in introduction -- [time=Fri, May 05, 2023] [name=Martin Jonsson]
* N-body results -- [time=Fri, May 05, 2023] [name=Martin Jonsson]
* Clarify why the old source from 1994 is used -- [time=Fri, May 05, 2023] [name=Martin Jonsson]
* Elaborate on reason for choosing rust -- [time=Fri, May 05, 2023] [name=Mathias Prétot]
* Mathematically describe n-body case study -- [time=Fri, May 05, 2023] [name=Martin Jonsson]
* Write about results: Prototype component data storage -- [time=Fri, May 05, 2023] [name=Jacob Bredin]
* Write about difficulties of implementing archetypes -- [time=Fri, May 05, 2023] [name=Jacob Bredin]
* Discussion: Manual schedule reordering -- [time=Fri, May 05, 2023] [name=Christoffer Persson]
* System Command Buffers -- [#53](https://github.com/martinjonsson01/recs/issues/53) [time=Fri, May 05, 2023] [name=Martin Jonsson]
* Batch component addition and removal -- [#112](https://github.com/martinjonsson01/recs/issues/112) [time=Fri, May 05, 2023] [name=Martin Jonsson]
* Benchmark N-body system in Unity DOTS -- [#57](https://github.com/martinjonsson01/recs/issues/57) [time=Fri, May 05, 2023] [name=Edvin Nilsson]
* Benchmark N-body system in Bevy vs ours -- [#55](https://github.com/martinjonsson01/recs/issues/55) [time=Fri, May 05, 2023] [name=Martin Jonsson]
* Benchmark N-body case study in EnTT -- [#110](https://github.com/martinjonsson01/recs/issues/110) [time=Fri, May 05, 2023] [name=Edvin Nilsson]
* Benchmark N-body system in Unity GameObjects -- [#74](https://github.com/martinjonsson01/recs/issues/74) [time=Fri, May 05, 2023] [name=Edvin Nilsson]
* Concurrency vs parallelism -- [time=Fri, May 05, 2023] [name=Mathias Prétot]
* Describe use of unsafe code -- [time=Fri, May 05, 2023] [name=Mathias Prétot]
* Scheduler: write about makespan minimization heuristic -- [time=Fri, May 05, 2023] [name=Christoffer Persson]
* Results: remake figures in schedule section -- [time=Fri, May 05, 2023] [name=Christoffer Persson]
* Intro to chapter: Benchmarks -- [time=Fri, May 05, 2023] [name=Mathias Prétot]
* Intro to chapter: Implementation -- [time=Fri, May 05, 2023] [name=Mathias Prétot]
### Events
* Work has been moving along and seems to be on track for completion before deadline.
* Supervisor provided feedback on the thesis which is set to be incorporated
* Benchmark results are now available for the n-body case study.
* Rain case study has begun development since its dependencies have been met. Should be faster to implement than the n-body since the structure now exists.
* Restructured Results section into three chapters to more distincly seperate API, benchmark results and implementation.
* Friday next week is the soft deadline for the completed report. Hard deadline on Monday in the following week.
## Week 17
### Meetings
* Weekly meeting 29 [Meeting Minutes](https://hackmd.io/UtVcYRJeT_GfkwPtoKwkQw) [time=Tue, May 09, 2023 8:00 AM]
* Weekly meeting 30 [Meeting Minutes](https://hackmd.io/24q8Ga2mR0KTWw-gQbE4gg) [time=Fri, May 12, 2023 8:00 AM]
### Closed isues
* Disussion: Discuss the pros and cons of regenerating the schedule during runtime -- [time=Fri, May 12, 2023] [name=Christoffer Persson]
* Benchmark Rain simulation in Bevy and RECS -- [#56](https://github.com/martinjonsson01/recs/issues/56) [time=Fri, May 12, 2023] [name=Martin Jonsson]
* Intra-system segmentation heuristic -- [#84](https://github.com/martinjonsson01/recs/issues/84) [time=Fri, May 12, 2023] [name=Edvin Nilsson]
* Parallel parameter fetching -- [#89](https://github.com/martinjonsson01/recs/issues/89) [time=Fri, May 12, 2023] [name=Martin Jonsson, Edvin Nilsson]
* Rain simulation case study -- [#73](https://github.com/martinjonsson01/recs/issues/73) [time=Fri, May 12, 2023] [name=Martin Jonsson]
* Find a more established source for why OOP is bad -- [time=Fri, May 12, 2023] [name=Linn Österlund]
* Remove prototyping from method -- [time=Fri, May 12, 2023] [name=Mathias Prétot]
* Move section about "Profiling tool" to appendix -- [time=Fri, May 12, 2023] [name=Mathias Prétot]
* Implementation: Update fetch_parameter listing -- [time=Fri, May 12, 2023] [name=Edvin Nilsson]
* Discussion: clarify manual schedule reordering -- [time=Fri, May 12, 2023] [name=Christoffer Persson]
* Results: Rewrite Querying to be up-to-date -- [time=Fri, May 12, 2023] [name=Edvin Nilsson]
* Compare cache hit-rate between different engines -- [time=Fri, May 12, 2023] [name=Edvin Nilsson]
* Clarify choice of programming language introduction -- [time=Fri, May 12, 2023] [name=Martin Jonsson]
* Mention correlation to ECS earlier 2.2.3 -- [time=Fri, May 12, 2023] [name=Martin Jonsson]
* Intro to chapter: Discussion -- [time=Fri, May 12, 2023] [name=Martin Jonsson]
* Rain simulation results -- [time=Fri, May 12, 2023] [name=Martin Jonsson]
* Remove equations from N-body results -- [time=Fri, May 12, 2023] [name=Jacob Bredin, Linn Österlund]
* Update "Benchmarking and Testing" to reflect actual benchmarking done -- [time=Fri, May 12, 2023] [name=Martin Jonsson]
* Literature Review/Related Work -- [time=Fri, May 12, 2023] [name=Edvin Nilsson, Mathias Prétot]
* Discuss how archetypes make component add/remove slow, and other options -- [time=Fri, May 12, 2023] [name=Linn Österlund]
* Create graphs for benchmark results -- [time=Fri, May 12, 2023] [name=Mathias Prétot]
* Results: write about archetypes -- [time=Fri, May 12, 2023] [name=Jacob Bredin, Linn Österlund]
* Write acknowledgement for Yehia -- [time=Fri, May 12, 2023] [name=Linn Österlund]
* Insert figures of benchmarking graphs and explain -- [time=Fri, May 12, 2023] [name=Mathias Prétot]
### Events
* Final week of thesis writing. Everything went well and the report turned out good. Hardest part was probably to keep to the page and word limit. Final polish pass on Monday next week and submit afterwards.
* Meetings with supervisor on both Tuesday and Friday meeting to gain final feedback of new and altered sections.
* Optimization regarding parallel parameter fetching provided a large performance improvements leading to us being at the forefront of large scale iteration speeds in n-body
* Rain simulation was implemented and it was found that the adding and removal of entities was a bottleneck in performance as inferred from the micro benchmark results.