~rycwo/blog

85ec184471a29843f1eef44f6c642cccc789f8f2 — Ryan Chan 1 year, 5 months ago fdc0caf
Rename redplanet series to forge dev log
5 files changed, 19 insertions(+), 16 deletions(-)

M content/archive/rust-wasm-interpolation/index.md
M content/blog/first-six-months-2019-update.md
R content/blog/{forging-redplanet-day-001-gentle-start.md => forge-dev-log-001-gentle-start.md}
R content/blog/{forging-redplanet-day-002-imgui-intro.md => forge-dev-log-002-imgui-intro.md}
R content/blog/{forging-redplanet-day-003-imgui-canvas.md => forge-dev-log-003-imgui-canvas.md}
M content/archive/rust-wasm-interpolation/index.md => content/archive/rust-wasm-interpolation/index.md +3 -3
@@ 15,7 15,7 @@ advanced gradient/blending tool than what photo editing programs currently
provide, in order to make a pretty gradient for the icon background!

For those of you who just want to mess about with pretty gradients, you can
[skip ahead to the demo](#demo).
[play around with the demo][demo].

# Building the demo



@@ 180,7 180,7 @@ deformation][psd] for better shape interpolation of skeleton-driven deformation.
of multivariate interpolation. To compute the value of an unknown point, it is
essentially a weighted average of its distance from the set of known points,
where the **weight increases as the distance decreases**. This has been
implemented in the [demo](#demo), you can give it a try using the following
implemented in the [demo][], you can give it a try using the following
option.

```json


@@ 247,7 247,7 @@ Each value in \\(B\\) is expected to be a single scalar value. If values have
more components, like our tuples of red, green, and blue, each component is
evaluated independently. Thankfully, nalgebra handles this for us, [solving the
systems simultaneously][nalgebra-solve]. When we enable the `visualize_fields`
option in the [demo](#demo), we can see that each color component is computed
option in the [demo][], we can see that each color component is computed
independently of the others.

Here we have a comparison of evaluating two different RBF kernels. Gaussian on

M content/blog/first-six-months-2019-update.md => content/blog/first-six-months-2019-update.md +1 -1
@@ 42,7 42,7 @@ A recurring theme of the past six months has been, **finding the courage to
challenge existing methodologies, whilst motivating inventiveness using
foundational truths.**

> They did not know it was impossible so they did it. - Mark Twain
> They did not know it was impossible so they did it. — Mark Twain

Shortly after joining [MPC][mpc] to write software, whenever I learned that
something in my work was considered "bad practice", I made it my mission to

R content/blog/forging-redplanet-day-001-gentle-start.md => content/blog/forge-dev-log-001-gentle-start.md +3 -2
@@ 1,11 1,12 @@
+++
title = "Forging redplanet (Day 1): A Gentle Start"
title = "Forge Dev Log 1: A Gentle Start"
date = 2020-09-01
aliases = ["blog/forging-redplanet-day-001-gentle-start"]
+++

The other night, prompted by my partner's recommendation, we watched
[_Julie & Julia_][julie-and-julia], dir. Nora Ephron. I thoroughly enjoyed the
film - although I was expecting as much considering the narrative revolved
film — although I was expecting as much considering the narrative revolved
around food! I particularly found joy in Meryl Streep's exaggerated depiction of
American chef Julia Child (if you haven't already seen a clip of her on the
internet, [enjoy](https://www.youtube.com/watch?v=M9AITdJBTnQ)). The biopic is

R content/blog/forging-redplanet-day-002-imgui-intro.md => content/blog/forge-dev-log-002-imgui-intro.md +7 -6
@@ 1,11 1,12 @@
+++
title = "Forging redplanet (Day 2): Intro To IMGUI"
title = "Forge Dev Log 2: Intro To IMGUI"
date = 2020-09-06
aliases = ["blog/forging-redplanet-day-002-imgui-intro"]
+++

With the first day behind me, I look onwards to the path ahead of me, and I am
reminded of why I'd lost momentum in the first place. I had gotten wrapped up
in a painfully basic problem - trying to create a pan/zoom behavior on the
in a painfully basic problem — trying to create a pan/zoom behavior on the
canvas layout the Immediate-Mode Graphical User Interface (a.k.a. IMGUI)
provides.



@@ 27,7 28,7 @@ potentially be multiple simultaneously active views of the same data). For the
uninitiated, there is [plenty][imgui-book] [of][imgui-casey]
[existing][imgui-sol] [literature][imgui-links] that addresses the benefits of
designing a GUI framework in an immediate-mode manner. Let's not waste precious
words trying to convince you that IMGUI is the way to go - although it really
words trying to convince you that IMGUI is the way to go — although it really
is.

The design of Forge's IMGUI is loosely inspired by existing solutions such as


@@ 42,8 43,8 @@ powerful workstations. This is a sticking point for Forge in general.
Unlike Dear ImGui, the API is intended to be more atomic and robust. Providing
UI elements that can be composed together in any desired layout, hopefully
reaching a similar level of expressiveness as HTML and CSS. That being said
there are some decided "limitations" - such as not supporting overlapping
translucency - that I will perhaps uncover another time. In any case, the
there are some decided "limitations" — such as not supporting overlapping
translucency — that I will perhaps uncover another time. In any case, the
"limitations" generally discourage what I consider to be bad UI design
practices, so they are acceptable.



@@ 116,7 117,7 @@ pop_gui_layout_container(context);

Any fancier layout functionality just does a bit of arithmetic to figure out
sizes and spacing for upcoming elements. Currently on the roadmap are a
flex/flow layout - not unlike CSS flexbox - and a grid layout.
flex/flow layout — not unlike CSS flexbox — and a grid layout.

Aside from the absolute basics, I have been working on a canvas layout. The
intention is to use this as a generic basis for node graphs with pan/zoom

R content/blog/forging-redplanet-day-003-imgui-canvas.md => content/blog/forge-dev-log-003-imgui-canvas.md +5 -4
@@ 1,10 1,11 @@
+++
title = "Forging redplanet (Day 3): IMGUI 2D Canvas"
title = "Forge Dev Log 3: IMGUI 2D Canvas"
date = 2020-09-09
aliases = ["blog/forging-redplanet-day-003-imgui-canvas"]
+++

Day three! What a day! I finally managed to move past my writer's block - if you
can call it that - and make good progress on the canvas layout for Forge's IMGUI
Day three! What a day! I finally managed to move past my writer's block — if you
can call it that — and make good progress on the canvas layout for Forge's IMGUI
as I had been wanting to. It's not a whole ton of work, but to paraphrase a good
friend of mine: when it comes to personal projects, the "initial inertia" is
the hardest bit. So I'll pat myself on the back and take this small win.


@@ 83,6 84,6 @@ clear I will be knee-deep in shader programming for the next few days. I have my
sights set on nailing the shaders for the primitives so I will not have to visit
them again for a long while.

[day-2]: @/blog/forging-redplanet-day-002-imgui-intro.md
[day-2]: @/blog/forge-dev-log-002-imgui-intro.md

[slab-alloc]: https://en.wikipedia.org/wiki/Slab_allocation