grokkingstuff Home Blog Projects Wiki Calculators About

Go

Golang for scientific work?

Unfortunately, scientific work is library dependent and golang wasn't really meant to be used for that kind of work. Buuut, it's great at parallel and networking stuff, and it's particularly good at crunching numbers.

Gonum - Library for numerical and scientific algorithns

https://www.gonum.org/

Gonum contains libraries for matrices and linear algebra; statistics, probability distributions, and sampling; tools for function differentiation, integration, and optimization; network creation and analysis; and more.

Library for writing scientific workflows that involve many commandline programs

https://github.com/scipipe/scipipe

Might be good for openfoam?

Jupyter notebook for golang

https://github.com/gopherdata/gophernotes

Application for viewing and editing images

https://apps.fyne.io/apps/io.github.palexer.image-viewer.html https://apps.fyne.io/apps/io.github.vinser.pixyne.html

Image processing algorithms in pure Go

https://github.com/anthonynsimon/bild

Basic package usage example:

package main

import (
    "github.com/anthonynsimon/bild/effect"
    "github.com/anthonynsimon/bild/imgio"
    "github.com/anthonynsimon/bild/transform"
)

func main() {
    img, err := imgio.Open("input.jpg")
    if err != nil {
        fmt.Println(err)
        return
    }

    inverted := effect.Invert(img)
    resized := transform.Resize(inverted, 800, 800, transform.Linear)
    rotated := transform.Rotate(resized, 45, nil)

    if err := imgio.Save("output.png", rotated, imgio.PNGEncoder()); err != nil {
        fmt.Println(err)
        return
    }
}

Library to handle serial communication with Arduino family

https://github.com/arduino/go-serial-utils

Cross platform GUI toolkit in Go inspired by Material Design

https://github.com/fyne-io/fyne

Glamorous commandline tools using Go

https://github.com/charmbracelet

https://charm.sh/