summaryrefslogtreecommitdiff
path: root/site
diff options
context:
space:
mode:
Diffstat (limited to 'site')
-rw-r--r--site/content/gsoc/index.typ42
-rw-r--r--site/content/gsoc/work_product_submission.typ142
2 files changed, 184 insertions, 0 deletions
diff --git a/site/content/gsoc/index.typ b/site/content/gsoc/index.typ
new file mode 100644
index 0000000..f669671
--- /dev/null
+++ b/site/content/gsoc/index.typ
@@ -0,0 +1,42 @@
+#import "/common.typ": post, link-self, static, img
+
+#show: post.with(
+ title: "Google Summer of Code 2020",
+ date: datetime(year: 2020, month: 9, day: 9),
+)
+
+#figure(
+ img(static("gsoc/otsu_clustering2a.png")),
+ caption: [The kind of stuff I worked on. Picture from #link-self("gsoc/otsu2018_3")[this blog entry].],
+)
+
+I participated as a student in Google Summer of Code in 2020. I worked on #link("https://summerofcode.withgoogle.com/projects/#6675798750134272")[New Spectral Upsampling Methods] for #link("https://www.colour-science.org/")[Colour], an affiliated project of #link("https://numfocus.org/")[NumFOCUS].
+
+I've published my #link-self("gsoc/proposal")[project proposal]. Maybe it'll help you if you're planning to participate yourself. The summary of my work, the *work product submission* can be found under #link-self("gsoc/work_product_submission")[this permalink].
+
+I maintained a blog throughout the program. (It's actually a requirement for students under NumFOCUS). A few posts are purely progress updates, but most of them cover the math and color science behind the code I was developing.
+
+*Blog posts:*
+
+- 5/26 #link-self("gsoc/first")[First post]
+- 6/01 #link-self("gsoc/plan_june")[The plan for June]
+- 6/01 #link-self("gsoc/prototypes_repo")[A repository for prototypes]
+- 6/08 #link-self("gsoc/nondimensionalization")[Nondimensionalization]
+- 6/12 #link-self("gsoc/convergence_problems")[Convergence problems]
+- 6/19 #link-self("gsoc/academic_year_ends")[Academic year ends]
+- 6/25 #link-self("gsoc/progress_late_june")[Late June progress update]
+- 7/01 #link-self("gsoc/june_ends")[June ends]
+- 7/13 #link-self("gsoc/differentiating_code")[Differentiating code]
+- 7/13 #link-self("gsoc/scipy_minimize_value_threshold")[Function value threshold in SciPy's minimize]
+- 7/14 #link-self("gsoc/differentiating_code_addendum")[Differentiating code – addendum]
+- 7/23 #link-self("gsoc/first_merge")[First merge]
+- 7/23 #link-self("gsoc/otsu2018_1")[Otsu et al. (2018), part 1]
+- 7/24 #link-self("gsoc/otsu2018_2")[Otsu et al. (2018), part 2]
+- 7/26 #link-self("gsoc/otsu2018_3")[Otsu et al. (2018), part 3]
+- 8/10 #link-self("gsoc/otsu2018_4")[Otsu et al. (2018), part 4]
+- 8/10 #link-self("gsoc/method_comparison")[Comparison of spectral upsampling methods]
+- 8/16 #link-self("gsoc/mid_august")[Mid-August progress report]
+- 8/20 #link-self("gsoc/mallett_merge")[Mallett and Yuksel (2019) merged]
+- 8/21 #link-self("gsoc/new_color_quality_metrics")[New color quality metrics]
+
+Big thanks to Google, NumFOCUS, and most importantly my mentors, #link("https://github.com/MichaelMauderer")[Michael Mauderer], #link("https://github.com/KelSolaar")[Thomas Manscencal] and #link("https://github.com/hao-xie")[Hao Xie], for a great and fun summer, and the opportunity to work on a really cool project.
diff --git a/site/content/gsoc/work_product_submission.typ b/site/content/gsoc/work_product_submission.typ
new file mode 100644
index 0000000..0b83867
--- /dev/null
+++ b/site/content/gsoc/work_product_submission.typ
@@ -0,0 +1,142 @@
+#import "/common.typ": post, link-self
+
+#show: post.with(
+ title: "Work Product Submission",
+ date: datetime(year: 2020, month: 8, day: 31),
+)
+
+*Name:* #link("https://redman.xyz")[Paweł Redman] \
+*Organization:* #link("https://numfocus.org/")[NumFOCUS] \
+*Sub-Organization:* #link("https://www.colour-science.org/")[Colour Science] \
+*Mentors:* #link("https://github.com/KelSolaar")[Thomas Mansencal], #link("https://github.com/MichaelMauderer")[Michael Mauderer], #link("https://twitter.com/HA0X1E")[Hao Xie]
+
+= Overview
+
+My work during this year's Google Summer of Code was focused on improving #link("https://github.com/colour-science/colour")[Colour]. I have added support for three new spectral upsampling methods and two new color quality metrics
+
+The following subsections, one for each new feature, contain links to relevant publications, files and pull requests. I've omitted some trivial contributions like those to `__init__.py` scripts. Every linked Python file listed below is, excluding Thomas's style and formatting fixes, entirely my own work.
+
+Unfortunately, not all code was merged before the deadline. The reviewing process has been taking much longer than expected, partly due to coinciding with some significant refactoring being done in the library. As of writing this document, pull requests for Otsu et al. (2018) and new color quality metrics are still open. However the code itself is finished and there's nothing left for me to do.
+
+= New spectral upsampling methods
+
+This subsection describes work planned in the #link-self("gsoc/proposal")[project proposal].
+== Jakob and Hanika (2019)
+
+Jakob and Hanika (2019) @Jakob2019.
+
+Major features:
+- Direct spectral upsampling of XYZ tristimulus values.
+- Indirect upsampling using a lookup table loaded from disk.
+- Lookup table creation.
+
+New files:
+- #link("https://github.com/colour-science/colour/blob/a4441a2db8904badcc327f7bae04244e5ef9960e/colour/recovery/jakob2019.py")[colour/recovery/jakob2019.py]
+- #link("https://github.com/colour-science/colour/blob/a4441a2db8904badcc327f7bae04244e5ef9960e/colour/recovery/tests/test_jakob2019.py")[colour/recovery/tests/test_jakob2019.py]
+
+Commits:
+- See: #link("https://github.com/colour-science/colour/pull/603")[PR: Implement Jakob and Hanika (2019) spectral upsampling]
+- #link("https://github.com/colour-science/colour/commit/da7fe930f78e66152bb13fd50477cbc70dcff1d5")[da7fe930] Change recovery.jakob2019 to work directly in the XYZ colourspace.
+- #link("https://github.com/colour-science/colour/commit/a4441a2db8904badcc327f7bae04244e5ef9960e")[a4441a2d] Further simplify Jakob and Hanika (2019).
+
+Blog posts:
+- #link-self("gsoc/plan_june")[The plan for June]
+- #link-self("gsoc/prototypes_repo")[A repository for prototypes]
+- #link-self("gsoc/nondimensionalization")[Nondimensionalization]
+- #link-self("gsoc/convergence_problems")[Convergence problems]
+- #link-self("gsoc/progress_late_june")[Late June progress update]
+- #link-self("gsoc/june_ends")[June ends]
+- #link-self("gsoc/differentiating_code")[Differentiating code]
+- #link-self("gsoc/scipy_minimize_value_threshold")[Function value threshold in SciPy's minimize]
+- #link-self("gsoc/differentiating_code_addendum")[Differentiating code – addendum]
+- #link-self("gsoc/first_merge")[First merge]
+- #link-self("gsoc/method_comparison")[Comparison of spectral upsampling methods]
+
+== Otsu et al. (2018)
+
+Otsu et al. (2018) @Otsu2018.
+
+Major features:
+- Upsampling of XYZ tristimulus values.
+- A built-in dataset, adapted from the published source code.
+- Dataset creation and optimization from arbitrary set of spectra.
+
+New files:
+- #link("https://github.com/enneract/colour/blob/feature/otsu2018/colour/recovery/otsu2018.py")[colour/recovery/otsu2018.py]
+- #link("https://github.com/enneract/colour/blob/feature/otsu2018/colour/recovery/datasets/otsu2018.py")[colour/recovery/datasets/otsu2018.py]
+- #link("https://github.com/enneract/colour/blob/feature/otsu2018/colour/recovery/tests/test_otsu2018.py")[colour/recovery/tests/test_otsu2018.py]
+
+Commits:
+- See: #link("https://github.com/colour-science/colour/pull/607")[PR: Implement Otsu et al. (2018) spectral recovery method].
+
+Blog posts:
+- #link-self("gsoc/otsu2018_1")[Otsu et al. (2018), part 1]
+- #link-self("gsoc/otsu2018_2")[Otsu et al. (2018), part 2]
+- #link-self("gsoc/otsu2018_3")[Otsu et al. (2018), part 3]
+- #link-self("gsoc/otsu2018_4")[Otsu et al. (2018), part 4]
+- #link-self("gsoc/method_comparison")[Comparison of spectral upsampling methods]
+
+== Mallett and Yuksel (2019)
+
+Mallett and Yuksel (2019) @Mallett2019.
+
+Major features:
+- Upsampling of sRGB colors.
+- A built-in dataset for sRGB, adapted from the published source code.
+- Dataset creation for any RGB colorspace and arbitrary optimization goals.
+
+New files:
+- #link("https://github.com/colour-science/colour/blob/b46c2faa8e3388ed85bd204c564bdfcc206d6c70/colour/recovery/mallett2019.py")[colour/recovery/mallett2019.py]
+- #link("https://github.com/colour-science/colour/blob/b46c2faa8e3388ed85bd204c564bdfcc206d6c70/colour/recovery/datasets/mallett2019.py")[colour/recovery/datasets/mallett2019.py]
+- #link("https://github.com/colour-science/colour/blob/b46c2faa8e3388ed85bd204c564bdfcc206d6c70/colour/recovery/tests/test_mallett2019.py")[colour/recovery/tests/test_mallett2019.py]
+
+Commits:
+- See #link("https://github.com/colour-science/colour/pull/617")[PR: Implement Mallett and Yuksel (2019) reflectance recovery method.].
+
+Blog posts:
+- #link-self("gsoc/method_comparison")[Comparison of spectral upsampling methods]
+- #link("/gsoc/mid_august.html#mallett_and_yuksel_2019")[Mid-August progress report – Mallet and Yuksel (2019)]
+- #link-self("gsoc/mallett_merge")[Mallett and Yuksel (2019) merged]
+
+= New color quality metrics
+
+This subsection documents some extra, unplanned work that I managed to get done in the last weeks of the program.
+== CIE 224:2017
+
+#link("http://cie.co.at/publications/cie-2017-colour-fidelity-index-accurate-scientific-use")[CIE 2017 Colour Fidelity Index for accurate scientific use] (CIE 224:2017)
+
+Major features:
+- Support for the CIE 2017 *Colour Fidelity Index*.
+- Tested the reference implementations to ensure accuracy and correctness.
+
+New files:
+- #link("https://github.com/enneract/colour/blob/feature/colour_fidelity_indexes/colour/quality/cfi2017.py")[colour/quality/cfi2017.py]
+- #link("https://github.com/enneract/colour/blob/feature/colour_fidelity_indexes/colour/quality/datasets/tcs_cfi2017_5_nm.csv.gz")[colour/quality/datasets/tcs_cfi2017_5_nm.csv.gz]
+- #link("https://github.com/enneract/colour/blob/feature/colour_fidelity_indexes/colour/quality/datasets/tcs_cfi2017_1_nm.csv.gz")[colour/quality/datasets/tcs_cfi2017_1_nm.csv.gz]
+- #link("https://github.com/enneract/colour/blob/feature/colour_fidelity_indexes/colour/quality/tests/test_cfi2017.py")[colour/quality/tests/test_cfi2017.py]
+
+Commits:
+- See #link("https://github.com/colour-science/colour/pull/621")[PR: Implement CIE 2017 and ANSI/IES TM-30-18 Colour Fidelity Indexes.]
+
+Blog posts:
+- #link-self("gsoc/new_color_quality_metrics")[New color quality metrics]
+
+== ANSI/IES TM-30-18
+
+#link("https://www.ies.org/product/ies-method-for-evaluating-light-source-color-rendition/")[IES Method for Evaluating Light Source Color Rendition] (ANSI/IES TM-30-18)
+
+Major features:
+- A complete implementation of all color quality metrics specified in the standard.
+- Tested against reference implementations to ensure accuracy and correctness.
+
+New files:
+- #link("https://github.com/enneract/colour/blob/feature/colour_fidelity_indexes/colour/quality/tm_30_18.py")[colour/quality/tm_30_18.py]
+- #link("https://github.com/enneract/colour/blob/feature/colour_fidelity_indexes/colour/quality/tests/test_tm_30_18.py")[colour/quality/tests/test_tm_30_18.py]
+
+Commits:
+- See #link("https://github.com/colour-science/colour/pull/621")[PR: Implement CIE 2017 and ANSI/IES TM-30-18 Colour Fidelity Indexes.]
+
+Blog posts:
+- #link-self("gsoc/new_color_quality_metrics")[New color quality metrics]
+
+#bibliography("/refs.bib")