Difference between revisions of "User:3bhady"

From BRL-CAD
(Coding Period)
(Coding Period)
Line 15: Line 15:
 
==== Required ====
 
==== Required ====
 
Final Exams period.
 
Final Exams period.
Delivering summary on the related papers. (O)
+
* Delivering summary on the related papers. (O)
Investigating SVGNest JS library (structure, utilities).
+
* Investigating SVGNest JS library (structure, utilities).
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
From 27/5 to 2/6 is my final exams week so my productivity won't be much and I'm making up for this time in the weekends and by working extra hours after 2/6. Deliverables won't be affected as I'm following the timeline for each period.
 
From 27/5 to 2/6 is my final exams week so my productivity won't be much and I'm making up for this time in the weekends and by working extra hours after 2/6. Deliverables won't be affected as I'm following the timeline for each period.
Line 24: Line 24:
 
=== June 15-June 20 ===
 
=== June 15-June 20 ===
 
==== Required ====
 
==== Required ====
Extract useful functions from SVGnest JS.
+
* Extract useful functions from SVGnest JS.
Write skeleton for unit tests for extracted functions.(T)
+
* Write skeleton for unit tests for extracted functions.(T)
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
N/A
 
N/A
 
=== June 20 -June 28 ===
 
=== June 20 -June 28 ===
 
==== Required ====
 
==== Required ====
Write unit test for the geometry functions to be used.(T)
+
* Write unit test for the geometry functions to be used.(T)
Implement the geometry utility functions.(C)
+
* Implement the geometry utility functions.(C)
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
N/A
 
N/A
 
=== June 28-July 4 ===
 
=== June 28-July 4 ===
 
==== Required ====  
 
==== Required ====  
Writing unit test skeleton for placement algorithm.(T)
+
* Writing unit test skeleton for placement algorithm.(T)
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
N/A
 
N/A
 
=== July 4- July 21 ===
 
=== July 4- July 21 ===
 
==== Required ====  
 
==== Required ====  
Implementing unit testing for placement algorithm.(T)
+
* Implementing unit testing for placement algorithm.(T)
Implementing placement algorithm.(C)
+
* Implementing placement algorithm.(C)
Parallelizing the placement algorithm.(C)
+
* Parallelizing the placement algorithm.(C)
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
N/A
 
N/A
 
=== July 21-July 26 ===
 
=== July 21-July 26 ===
 
==== Required ====  
 
==== Required ====  
Design skeleton code for unit testing optimization algorithm.(T)
+
* Design skeleton code for unit testing optimization algorithm.(T)
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
N/A
 
N/A
 
=== July 26-Aug 9 ===
 
=== July 26-Aug 9 ===
 
==== Required ====  
 
==== Required ====  
Implementing unit testing for optimization algorithm. (T)
+
* Implementing unit testing for optimization algorithm. (T)
Implementing optimization algorithm.(C)
+
* Implementing optimization algorithm.(C)
Determining threshold for when to stop optimizing.
+
* Determining threshold for when to stop optimizing.
Adding needed buttons in GUI for allowing user to specify threshold for stopping optimization. (C)
+
* Adding needed buttons in GUI for allowing user to specify threshold for stopping optimization. (C)
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
N/A
 
N/A
 
=== Aug 9-Aug 19 ===
 
=== Aug 9-Aug 19 ===
 
==== Required ====  
 
==== Required ====  
Testing the whole auto-arranging module against SVGnest library and fixing bugs if the outputs are not identical. (T)
+
* Testing the whole auto-arranging module against SVGnest library and fixing bugs if the outputs are not identical. (T)
Testing the output through the perl GUI. (T)
+
* Testing the output through the perl GUI. (T)
 
==== Activity Log For This Period ====
 
==== Activity Log For This Period ====
 
N/A
 
N/A

Revision as of 15:42, 31 May 2019

Community Bonding Period

  1. Played around with code and build GUI.
  2. Found where is auto-arrange is being called and how it's called so that I could get a grasp of how it should be replaced. Supermill helped by giving me another use of auto-arrange.
  3. Looked for a faster way to build the project rather than waiting for 15 minutes when changing anything, LoH helped me with a faster way to build it.
  4. Investigated SVGNest JS code to get a feel of how the code is structured.
  5. Started investigating in the SVGNest desktop application as gege2b has pointed out there is an implementation in C for SVGNest. After investigating I found the implementation isn't fully in C only one function of it is C and the rest is the previous JS code.
  6. Today I'll start reading one of the papers.
  7. I've started reading "Complete and robust no-fit polygon generation for the irregular stock cutting problem" paper and it was very helpful. I went through the rabbit hole as the paper references other papers so I dived head first into reading them. I got a better understanding of the No-Fit Polygon and what role does it play in the whole auto-arrange algorithm, why it's useful and why it's better than it's predecessors.
  8. Tomorrow I'll take a look at SVGNest and compare how they implement the NFP with what the paper suggests. Today I'm studying for my final exams in my University tomorrow.
  9. Finished Reading the required papers and took notes to start summarizing them.

Coding Period

May 27-June 15

Required

Final Exams period.

  • Delivering summary on the related papers. (O)
  • Investigating SVGNest JS library (structure, utilities).

Activity Log For This Period

From 27/5 to 2/6 is my final exams week so my productivity won't be much and I'm making up for this time in the weekends and by working extra hours after 2/6. Deliverables won't be affected as I'm following the timeline for each period.

  1. Investigated SVGNest C and JS code to find out what has changed between these two projects and if I can make use of the C implementation.
  2. Took notes on the related papers and started summarizing them.
  3. Designing bounding object function to get a 2d boundaries for the objects to work with.

June 15-June 20

Required

  • Extract useful functions from SVGnest JS.
  • Write skeleton for unit tests for extracted functions.(T)

Activity Log For This Period

N/A

June 20 -June 28

Required

  • Write unit test for the geometry functions to be used.(T)
  • Implement the geometry utility functions.(C)

Activity Log For This Period

N/A

June 28-July 4

Required

  • Writing unit test skeleton for placement algorithm.(T)

Activity Log For This Period

N/A

July 4- July 21

Required

  • Implementing unit testing for placement algorithm.(T)
  • Implementing placement algorithm.(C)
  • Parallelizing the placement algorithm.(C)

Activity Log For This Period

N/A

July 21-July 26

Required

  • Design skeleton code for unit testing optimization algorithm.(T)

Activity Log For This Period

N/A

July 26-Aug 9

Required

  • Implementing unit testing for optimization algorithm. (T)
  • Implementing optimization algorithm.(C)
  • Determining threshold for when to stop optimizing.
  • Adding needed buttons in GUI for allowing user to specify threshold for stopping optimization. (C)

Activity Log For This Period

N/A

Aug 9-Aug 19

Required

  • Testing the whole auto-arranging module against SVGnest library and fixing bugs if the outputs are not identical. (T)
  • Testing the output through the perl GUI. (T)

Activity Log For This Period

N/A



Deliverables are marked in the timeline as follows: Code is marked as (C). Tests are marked as (T). Others are marked as (O).