• Home
  • Blog
  • C# / Unity
  • C++ / Unreal Engine
  • Python strategy games
  • Python arcade games
  • Python other
  • Machine Learning
  • C
  • Scratch
  • Coding and electronics
  • How I learnt to code
  • Project Euler
  • Feedback
  James L.'s coding

James's blog

what I've been doing.

Graphite Node Graph

30/4/2023

0 Comments

 
Picture
I have been working with Keavon and TrueDoctor to integrate the node graph with Graphite, an open source web based graphics editor. Modifying images with the node graph (seen in the bottom of the screenshot) allows the user to try out different image operations, and easily modify them later, or to reorder them. This is in contrast to destructive image editors such as Photoshop, which directly modify the image data, meaning that in order to change an operation you have to undo it and then reapply it. Some of my changes are listed below:
  • Integrate the node graph as a Node Graph Frame layer type - this allows the node graph to be stored in the editor and run.
  • Add a basic API and rudimentary frontend for node graph layers - this integrated the rust data types with the frontend that Keavon had designed.
  • Add some additional image effect nodes - some simple image effects such as the brightness and contrast node and the exposure node were added. These have later been improved by a number of contributors.
  • Node code cleanup for vector data, and add node creation guide - this PR added some support for vector data in the node graph, and also improved documentation of the node creation process, allowing new contributors to more easily add a new node, which I've updated in Update node guide.
  • Migrate vector data and tools to use nodes - This modified all of the vector tools like the rectangle tool to produce a node graph.
I'm continuing to work on improving the node graph in Graphite. These current changes can be seen in the live preview at editor.graphite.rs/
0 Comments

Graphite - Contributions to the Brush Tool

27/4/2023

0 Comments

 
Picture
I recently worked with Orlp and TrueDoctor to add a brush tool to Graphite, an open source web based graphics editor being built in Rust. Some of my contributions include:
  • Brush tool live preview - this built on the existing brush tool to allow users to preview as they were drawing, rather than having to wait until they had released the mouse button. This involved a lot of work getting the transforms to properly align. I also added left and right square bracket to change the size of the brush, and some linear interpolation when the mouse moved a long way in a single update.
  • Make Brush tool use per-stroke options and improve its performance - I helped by fixing issues with the position of the stroke relative to the mouse pointer
  • Allow drawing on top of an image when a layer containing a bitmap image is selected.
  • Fix brush layers growing hugely when resizing transforms with Select tool - this fixed an issue where the brush layers would become extremely large because a transform node would square the size of the brush strokes. Fixing this involved some careful sketching of the order in which the affine matrices were applied.
0 Comments
    Advert:

    Author

    I am doing lots of projects every projects all the time and I can't put them all on the website so I've made a blog.

    Archives

    April 2023
    September 2022
    August 2022
    April 2022
    March 2022
    February 2022
    January 2022
    November 2021
    October 2021
    August 2021
    July 2021
    June 2021
    April 2021
    March 2021
    June 2020
    May 2020
    April 2020
    March 2020
    September 2019
    June 2019
    May 2019
    April 2019
    March 2019
    February 2019
    January 2019
    November 2018
    August 2018
    July 2018
    June 2018
    May 2018
    April 2018
    March 2018
    February 2018
    January 2018
    December 2017
    November 2017
    October 2017

    Categories

    All

Proudly powered by Weebly
  • Home
  • Blog
  • C# / Unity
  • C++ / Unreal Engine
  • Python strategy games
  • Python arcade games
  • Python other
  • Machine Learning
  • C
  • Scratch
  • Coding and electronics
  • How I learnt to code
  • Project Euler
  • Feedback