Skip to content

Commit

Permalink
refactor: move overview to 'projects'
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Look committed Mar 9, 2024
1 parent 7071354 commit d36f97a
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 54 deletions.
21 changes: 0 additions & 21 deletions nbs/blog/posts/slml_overview.qmd

This file was deleted.

56 changes: 23 additions & 33 deletions nbs/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,25 @@ title: home
page-layout: article
sidebar: false
toc: false
listing:
- id: projects-list
contents: "projects/*.qmd"
type: table
sort: "date desc"
date-format: iso
sort-ui: false
filter-ui: false
categories: false
fields: [title, date]
- id: posts-list
contents: "blog/posts"
type: table
sort: "date desc"
date-format: iso
sort-ui: false
filter-ui: false
categories: false
fields: [title, date]
---

## Hi, I'm Andrew Look.
Expand All @@ -13,39 +32,10 @@ You can learn more about me on [my "about" page](about/index.qmd), or you can ch

## Projects

### Single-Line Machine Learning

Lately I've been working on training ML models to generate single-line drawings in my style. I've open-sourced the code for my [models](https://github.com/andrewlook/singleline_models) and the code I used to prepare the [dataset](https://github.com/andrewlook/singleline_dataset).

In part [part 1](./blog/posts/slml_part1.qmd), I cover how I'm using embeddings to filter my dataset of drawings. I also made an exploratory browser to visualize the embedding space of the drawings, and published it at [projector.andrewlook.com](https://projector.andrewlook.com). Here's a demo video:

:::{.column-body-outset}
{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/emb-projector.mp4" >}}
:::{#projects-list}
:::

In [part 2](./blog/posts/slml_part2.qmd), I cover how I'm vectorizing the scans to prepare them for RNN/transformer training. I also wrote some fun preprocessing code to [join SVG paths](https://singleline-dataset.andrewlook.com/strokes.html) up into continuous lines. Here's a debug video I made to flip through part of my dataset and watch drawings go from multiple strokes (one color per stroke) to a single stroke:

:::{.column-body-outset}
{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/new_file_fps20.mp4" >}}
:::

In [part 3](./blog/posts/slml_part3.qmd), I cover a series of experiment results from training SketchRNN with different regularization and data augmentation, to see how it affects the results that the models can generate. Here are some of the resulting drawings:

:::{.column-body-outset layout-ncol=3}
{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/video-11.mp4" >}}

{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/video-8.mp4" >}}

{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/video-9.mp4" >}}
:::

In part 4 _(coming soon)_, I cover my experiments using a transformer model instead of an RNN, to see if the model can better handle long-term dependencies within the drawings.

:::{.column-body-outset cap-location=bottom}
![Architecture of the SketchFormer model.](https://i.ibb.co/rx1nbmt/sketchformer-architecture.png)
:::




## Posts

:::{#posts-list}
:::
54 changes: 54 additions & 0 deletions nbs/projects/slml.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: SLML - Single-Line Machine Learning
description: Overview of my project training ML models on a dataset of single-line drawings.
categories: [singleline, machinelearning, slml]
author: Andrew Look
date: 2023-10-25
date-modified: 2024-03-06
image: https://i.ibb.co/Vj5kRw3/download.png
comments:
utterances:
repo: andrewlook/notebooks
cap-location: margin
sidebar: true
---

# SLML - Single-Line Machine Learning

Lately I've been working on training ML models to generate single-line drawings in my style. I've open-sourced the code for my [models](https://github.com/andrewlook/singleline_models) and the code I used to prepare the [dataset](https://github.com/andrewlook/singleline_dataset).

## [Part 1 - Embedding Filtering](./blog/posts/slml_part1.qmd)

In [part 1](./blog/posts/slml_part1.qmd), I cover how I'm using embeddings to filter my dataset of drawings. I also made an exploratory browser to visualize the embedding space of the drawings, and published it at [projector.andrewlook.com](https://projector.andrewlook.com). Here's a demo video:

:::{.column-body-outset}
{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/emb-projector.mp4" >}}
:::

## [Part 2 - Dataset Vectorization](./blog/posts/slml_part2.qmd)

In [part 2](./blog/posts/slml_part2.qmd), I cover how I'm vectorizing the scans to prepare them for RNN/transformer training. I also wrote some fun preprocessing code to [join SVG paths](https://singleline-dataset.andrewlook.com/strokes.html) up into continuous lines. Here's a debug video I made to flip through part of my dataset and watch drawings go from multiple strokes (one color per stroke) to a single stroke:

:::{.column-body-outset}
{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/new_file_fps20.mp4" >}}
:::

## [Part 3 - Training SketchRNN](./blog/posts/slml_part3.qmd)

In [part 3](./blog/posts/slml_part3.qmd), I cover a series of experiment results from training SketchRNN with different regularization and data augmentation, to see how it affects the results that the models can generate. Here are some of the resulting drawings:

:::{.column-body-outset layout-ncol=3}
{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/video-11.mp4" >}}

{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/video-8.mp4" >}}

{{< video "https://storage.googleapis.com/andrewlook-art-assets/andrewlook.com/videos/video-9.mp4" >}}
:::

## Part 4 - Training Sketchformer

In part 4 _(coming soon)_, I cover my experiments using a transformer model instead of an RNN, to see if the model can better handle long-term dependencies within the drawings.

:::{.column-body-outset cap-location=bottom}
![Architecture of the SketchFormer model.](https://i.ibb.co/rx1nbmt/sketchformer-architecture.png)
:::

0 comments on commit d36f97a

Please sign in to comment.