Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking Issue: New nodes #912

Open
Keavon opened this issue Dec 25, 2022 · 0 comments
Open

Tracking Issue: New nodes #912

Keavon opened this issue Dec 25, 2022 · 0 comments
Labels
Feature New feature or request Good First Issue Good for newcomers Graphene Involves the node graph system/engine used by Graphite Help Wanted Extra attention is needed Rust Involves Rust programming for the backend

Comments

@Keavon
Copy link
Member

Keavon commented Dec 25, 2022

This is a living, growing list.

Documentation for making new nodes: https://github.com/GraphiteEditor/Graphite/blob/master/node-graph/README.md

Noise

Image Dimensions

  • Crop based on margin
  • Crop based on top left offset and desired dimensions
  • Resize based on scale factor (user to choose interpolation method)
  • Resize based on desired resolution (user to choose interpolation method)
  • Tile to fill bounds
  • Get image dimensions (returns vec2)

Image transformations

  • Flip (choose horizontal or vertical)
  • Rotate (choose interpolation method and negative space fill)
  • Shift image (choose X, Y and negative space fill)

Image channels

Image adjustments

  • Brightness/Contrast
  • Levels
  • Curves - requires custom widget
  • Exposure
  • Vibrance - still needs a Saturation slider
  • Hue/Saturation - current algorithm is incorrect
  • Color Balance
  • Black & White - rename from Grayscale
  • Photo Filter
  • Channel Mixer
  • Color Lookup
  • Invert RGB
  • Posterize
  • Threshold
  • Selective Color
  • Gradient Map

Other adjustments

Filters

Vector

  • Convex hull
  • Boolean operations node #1091
    • Join
    • Add
    • Subtract
    • Intersect
    • Xor
    • Divide
  • Solidify stroke node #1092
  • Vector Edit node #1162 Vector Edit (nondestructively apply a queue of operations from the Path tool to an existing shape)
  • Polyline Subsurf
  • Voronoi from Points (map a point cloud into vector shapes centered at those points forming a Voronoi diagram, with a smoothing option)
  • Roughen (amplitude, frequency, absolute/relative to scale, smooth/sharp)
  • Spline from Polyline
  • Point/Handle Groups
  • Area
  • Bounding Box (Modification)
    • -> Min (Top Left X,Y)
    • -> Max (Bottom Right X,Y)
  • Read (from Blender)
    • Curve Handle Positions
    • Curve Length
    • Curve Tangent
    • Endpoint Selection
    • Handle Type Selection
    • Is Spline Cyclic
    • Spline Length
    • Spline Parameter
    • Spline Resolution
  • Sample (from Blender)
    • Sample Curve
  • Write (from Blender)
    • Set Curve Normal
    • Set Curve Width
    • Set Curve Radius
    • Set Handle Positions
    • Set Handle Type
    • Set Spline Cyclic
    • Set Resolution
    • Set Spline Type
  • Operations (from Blender)
  • Primitives (from Blender)
    • Arc
    • Bezier Segment
    • Curve Circle
    • Curve Line
    • Curve Spiral (But 2D)
    • Quadratic Bezier
    • Quadrilateral [Rectangle, Parallelogram, Trapezoid, Kite, Points]
    • Star
  • Topology (from Blender)
    • Offset Point in Curve
    • Curve of Point
    • Points of Curve

Stroke (Modification)

  • -> Fill Type [Solid, Gradient, Contour]
  • -> Custom Width Profile
  • -> Custom Line Join Profile
  • -> Custom Line Cap Profile
  • -> Align[Center, Inside, Outside]
  • Expand Stroke

Contour Tool/Node

  • -> Radius
  • -> Contour Type[Round, Miter, Bevel, Custom]
  • -> Miter
  • -> Contour Cap[None, Round, Square]
  • -> Contour Fill[Auto Closed, Force Open, Force Closed]
  • -> Radius
  • -> Contour Type[Round, Concave, Straight, Cutout, Custom]
  • -> Selection

Brush

Generic

  • Repeat
  • Circular repeat
  • Mirror
  • Scatter

Widgets

  • Curves Widget

Instances (from Blender)

  • Instance on Points (New node: Copy to Points #1513)
  • Instance to Points
  • Realize Instances
  • Rotate Instances
  • Scale Instances
  • Translate Instances
  • Instance Rotation
  • Instance Scale

Instance Points (from Blender)

  • Distribute Points (Image (Should allow to use alpha as a Selection)/Vector)

Utilities

  • Color (from Blender)
    • Color Ramp
    • RGB Curves
    • Combine Color
    • Mix Color
    • Separate Color
  • String (from Blender)
    • Join Strings / concatinate
    • Replace String
    • Slice String (Index Offset or Text/Regex)
    • String Length
    • String to Curves
    • Value To String
    • Special Characters
      • Text pad (inserts chars either at start or end until length is as desired)
  • Vector (from Blender)
    • Vector Curves
    • Vector Math
    • Vector Rotate
    • Combine XY/WH
    • Mix Vector
    • Separate XY/WH

Maths

NOTE: All will have Clamp Option (0.,1.)

  • Functions
    • Add
    • Subtract
    • Multiply
    • Divide
    • Multiply Add
    • Power
    • Logarithm
    • Square Root
    • Inverse Square Root - Square ^2?
    • Absolute
    • Exponent
    • Clamp
    • Float curve
    • Map range
  • Comparison
    • Min
    • Max
    • Less Than
    • Greater Than
    • Sign
    • Compare
    • Smooth Minimum
    • Smooth Maximum
  • Rounding
    • Round
    • Floor
    • Ceil
    • Truncate
    • Fraction
    • Modulo
    • Wrap
    • Snap
    • Ping-Pong
  • Trigonometric
    • Sine
    • Cosine
    • Tangent
    • Arcsine
    • Arccosine
    • Arctangent
    • Arctan2
    • Hyperbolic Sine
    • Hyperbolic Cosine
    • Hyperbolic Tangent
  • Conversion
    • To Radians
    • To Degrees
  • Mix
  • Vec2
    • multiply by scalar or vector
    • divide by scalar or vector
    • add
    • subtract
    • length
    • length squared
    • normalise
    • distance between two vectors
    • dot product
    • cross product
    • ceil (per axis)
    • floor (per axis)
    • min (per axis)
    • max (per axis)
    • Linear interpolation (lerp)

Misc (from Blender)

  • Random Value
  • Switch
@Keavon Keavon added Feature New feature or request Good First Issue Good for newcomers Available Rust Involves Rust programming for the backend labels Dec 25, 2022
@Keavon Keavon changed the title New nodes Tracking Issue: New nodes Dec 30, 2022
@Keavon Keavon removed the Available label Dec 30, 2022
@Keavon Keavon added Help Wanted Extra attention is needed and removed P-High labels May 31, 2023
@Keavon Keavon added the Graphene Involves the node graph system/engine used by Graphite label Jun 17, 2023
@0HyperCube 0HyperCube pinned this issue Jan 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request Good First Issue Good for newcomers Graphene Involves the node graph system/engine used by Graphite Help Wanted Extra attention is needed Rust Involves Rust programming for the backend
Projects
Status: In-Progress Projects
Development

No branches or pull requests

3 participants