• 1 Post
  • 122 Comments
Joined 1 year ago
cake
Cake day: June 30th, 2023

help-circle
  • Like I said, impressive work.
    Converting science to shaders is an art.

    I guess your coding standards follows scientific standards.
    And I guess it depends on your audience.

    I guess the perspective is that science/maths formulae are meant to be manipulated. So writing out descriptive names is only done at the most basic levels of understanding. Most of the workings are done on paper/boards, or manually. Extra letters are not efficient.
    Whereas programming is meant to be understood and adapted. So self-describing code is key! Most workings are done within an IDE with autocomplete. Extra letters don’t matter.

    If you are targeting the science community with this, a paragraph about adapting science to programming will be important.
    Scientists will find your article and go “well yeh, that’s K2”. But explaining why these aren’t named as such will hopefully help them to produce useful code in the future.

    The fun of code that spans disciplines!

    Edit;
    Om a side note, I am terrible at coding standards when I’m working with a new paradigm.
    First is “make it work”, after which it’s pretty much done.
    Never mind consistent naming conventions and all that.
    The fact you wrote up an article on it is amazing!
    Good work!


  • Interesting.
    I love creative applications of shaders. They are very powerful.

    In my opinion only, but willing to discuss.
    And I’ll preface this by saying if I tried to publish a scientific paper and my formulas used a bunch of made up symbols that are not standardised, I imagine it would get a lot of corrections on peer review.

    So, from a programming perspective, don’t use abbreviations.
    Basically working on naming.

    I can read that TAU is the diffusion rate due to a comment. Then I dig further into the code as I am trying to figure something out and I encounter tau. Now I have to remember that tau is explained by a comment, instead of the name of the variable. Why not call it diffusionRate then have a comment indicating this is TAU.
    A science person will be able to find the comment indicating where it is initialised and be able to adjust it without having to know programming. A programming person will be able to understand what it does without having to know science things.
    Programming is essentially writing code to be read.
    It’s written once and read many times.

    Similar with the K variables.
    K is reactionRate.
    K1 is reactionKillRate.
    K2 is reactionFeedRate.
    Scientists know what these are. But I would only expect to see variables like this in some bizarre nested loop, and I would consider it a code smell.

    The inboundFlow “line” has a lot going on with little explanation (except in comments). The calculation is already happening and going into memory. Why not name that memory with variables?
    Things like adjacentFlow and diagonalFlow to essentially name those respective lines.
    Could even have adjacentFlowWeight and diagonalFlowWeight for some of those “magic numbers”.
    Comments shouldn’t explain what is happening, but why it’s happening.
    The code already explains what is happening.
    So a comment indicating what the overall formula is, how that relates to the used variables, then the variables essentially explain what each part of it is.
    If a line is getting too complicated to be easily understood, then parting it out into further variables (or even function call, tho not applicable here) will help.
    I would put in an editted example, however I’m on mobile and I know I will mess up the formatting.

    A final style note, however I’m not certain on this.
    I presume 1. and 1.0 are identical representing the float value of 1.0?
    In which case, standardise to 1.0
    There are instances of 2.0 and 2.
    While both are functionally identical, something like (1.0, 1.0, 1.0) is going to be easier to spot that these are floats, as well as spotting typos/commas - when compared to (1., 1., 1.,).
    IMO, at least











  • What a great origin. I Googled it, and it now means “to add your opinion”.

    1. Seinen Senf dazugeben

    Literal translation: To add your mustard to it.

    Actual meaning: To give your opinion on something./To give your two cents.

    Where there are sausages, there also must be mustard. If you want to ask someone for their opinion and sound like a fluent speaker when doing it, you better invite them to add their mustard.

    https://www.mondly.com/blog/german-idioms/

    In the process, I found some other great German proverbs with hilarious literal translations.

    Literal translation: To talk around the hot porridge.
    Literal translation: To ask for an extra sausage.
    Literal translation: I believe I spider. (Edit: I believe I spin, see comment).
    Literal translation: To have tomatoes on one’s eyes.
    Literal translation: I can only understand ‘train station.’.
    Literal translation: You’re walking on my cookie.
    Literal translation: The bear dances there.
    Literal translation: Everything has an end. Only the sausage has two.

    But, I guess that’s always the case with idioms. Their literal translation/meaning is useless. Regardless, I find German ones particularly titular


  • At one point, blue LEDs were super expensive because of their difficult production.
    So any product that has a blue LED was considered premium. I guess they were also considered futuristic and high-tech.
    Somehow, this is still in the mind of some manufacturers.
    All I want is a barely-visible-in-soft-daylight diffused/frosted red or amber LED.
    But no, it’s always some 5w lensed blue LED at somehow produces a tighter beam of horrendous blue light that’s brighter than most flashlights.