nodes2python is a piece of shit python “script” that i “wrote” to “translate” .nodes files to “python” — for another cancelled project called Styx that i also would’ve written in “python”
-
Update to the Nodes2Python module is coming out in a minute. There\’s just this one bug that defies all logic
-
i might roll out some updates for this program soon, since im learning how shitty of a programmer i am
-
Github repository is up!
Link: https://github.com/Vuice3/Nodes2PythonYou can freely distribute the program if you wish, just keep the unmodified CREDITS.txt in there.
Entire documentation and tutorial is in the README.txt , and comments on how the program converts .nodes to .py are in the program itself. Enjoy.
-
also if you find bugs or errors, let me know right away
-
Page not found

-
Replying to:
Shit, is it because the repository is privated? Ima have to find a way around that
-
Replying to:
Cool. I thought it might have because I didn’t have an account, but than I realized that’s not it
-
Replying to:
Done, should be public now
-
Replying to:
Cool. I’ll check!
-
Replying to:
It works 👍
-
Replying to:
Pardon my ignorance, and I know I asked this before, but now that’s it’s finished and more is probably set in stone on ideas,
What are some of the possibilities that this can offer? I know vaguely about kitra
-
Replying to:
Krita is a more advanced application than Sticknodes, in a way that more skilled animators can have access to higher-level tools in features.
But unfortunately, Krita doesn’t have anything simmilar to stickfigures in it, that’s why I’m implementing it myself as nobody appears to have made something like this before. You’ll Soon™ be able to combine the power of Sticknodes’ stickfigures and Krita’s more advanced interface to create even better animations.
-
Replying to:
Interesting. And with open nodes, that would mean better Stickfigure creation AND animation with Nodes2Python
Nice
-
Replying to:
I’m probably not gonna name the krita part of this nodes2python, that’s just the name of the conversion process which I’m gonna be building into the krita plugin. Though nodes2python is also available as it’s own program
-
Replying to:
Oh, ok. I understand now
-
-
-
Replying to:
Soon™
stop stealing ALL of my shit, including my stickfigures and trademarked lingo
-
-
-
-
-
-
-
Ah yes, now to poke around the repo and silently judge your code >:)
-
Replying to:
disclaimer: its not good nor optimized
with high-node count stickfigures, it takes a pretty damn long time to finish the deed
-
-
-
oh god nodes2python isnt finished after all, just realized that I need to create a way to deter between parent, child, and sister nodes
more pain time
-
I’m pleased to announce that nodes2python is finished! You’ll be able to download & use the program for whatever you want soon. After 2 weeks of working on this, with over 600 lines of code written, I can say that this was certainly worth the mental breakdowns.
That said, here’s a peek into the first stickfigure converted to a python dictionary. It’s a random figure I grabbed from the website called Dust 01:
-
Also, the reason I don’t want to release this right away is because this is practically it’s own file type now, I have to create a README that documents how to use the program and how to read the contents of outputted files.
-
Yooooo, congrats comrade 👏
-
Replying to:
Now become the flash and complete open nodes
NOW!
-
Replying to:
Lmao I wish
-
Replying to:
Then you left me no choice…
*insert menacing threat here*
-
-
-
-
-
-
Bro, btw, if you’re pushing off learning how to use the debugger like I was, I recommend taking a little time to learn it. It’s really not as complicated as you might think, and it’s sooooo helpful.
Basically, it lets you step through your code line by line and read what any value is at any point in your program.
-
Replying to:
I didnt even know there was a debugger, is that a VS Code thing? because I use VS 2019 instead
-
Replying to:
Any good IDE should have one. I would imagine VS 2019 would have it hidden somewhere,
but I always thought of the main line Visual Studio as more focused on lower end programming languages like C, C#, etc, so maybe they don’t have one for Python?
That’d still be kind of weird if it doesn’t have a debugger for Python somewhere.
-
-
-
-
this is definitely me when attempting to stickfigure
like why the actual fuck is the nodeCount edging the damn signed 32 bit integer limit, its literally a one-node stickfigure it should be 1 what is going on
all of the booleans are true on node_0 when they are supposed to be false
and whats with this e-notation bullshit, all the floating points are messed up except for node_0_Angle
why is my life coming to this
jHIjasjoi;dJAojidpoasogpoasdjoijad-
dude even the screenshots are betraying me thats so low-res
-
Alright, weather update, the booleans are now not fucked up
but everything else still bad and im trying to print as much shit into the console as I can about this
-
Replying to:
also does anyone know if the integer “2130706432” has any relation to anything, i tried looking it up and i got “invalid object” but i have zero clue what that means
-
-
haha its funny when it happens to someone else
-
Replying to:
please tell me that its supposed to be e-notation i want to be done soon
-
Replying to:
idk really, depends how you’re reading the data (or writing it wrong maybe)
all the other ints there are displayed properly (ver: 334 for example)
this is no different-
Replying to:
Yeah, what’s bugging me is that the nodeCount is just a cumulation of all the “Number of child nodes” in the file that i decided to add to the dictionary for better accessibility, but in this case it was set to 2130706432 for virtually no reason
the figure in question is comprised of just the main node and the rounded segmentand the scale of the figure is 1.0, not 1.5 so i must have done something wrong there
as far as i know though, the 32-bit int translations arent buggy
-
-
-
-
If you’re trying to get a total node count from the file, there isn’t a total node count anywhere in the file.
The only node counts in the file are the numberOfChildNodes count as the last 4 bytes of every node to know whether it should iterate child nodes or move onto the next sister node.
-
Replying to:
The nodeCount is just the cumulation of every numberOfChildNodes,
it was used for a “while loop” , to loop a piece of code until the amount of times the loop occurs = nodeCountbut nodeCount is kind of wack right now for some reason and im trying to figure out why
-
-
The e notion for the floats are due to the odd nature of floating points.
Floating points basically use the binary equivalent of scientific notation, so it’s easy for floating points to represent a really really small number instead of 0.
For example, in your case representing something like 0.00000000 … 000000069 instead of 0.
-
Also, what are the allNodeIDs and node_x_Layer properties?
-
Replying to:
allNodeIDs is something I added to the dictionary to just add every node ID into a list
node_x_layer is just the draw order number (and ID), it was simpler to call it “layer” instead
-
Replying to:
I dont even remember why I added allNodeIDs, its probably time to remove it
-
-
-
One last thing. I think I messed up the documentation a little with colors. Each byte of the color (A,B,G, and R) may need to be unsigned so they range from 0 to 255 instead of -128 to 127
-
Replying to:
Ah, I already speculated that on my own, except for the alpha
-
-
Who is the warm toilet seat who programmed this ? 💢💢💢💢👿👿👿👿
-
Replying to:
me
-
-
-
alright time to ping @vincetheanimator for the millionth time for help
In your documentation, with any \”32 bit float big endian\” group of bytes, is it the same as \’Single Precision\’ in the IEEE 754 standard? Or is it some other way of representing a float in binary that I am unaware of?
Additional question — Does the way sticknodes reads a \”32 bit float big endian\” sequence of bytes include a sign bit at the beginning of the sequence?
-
Oh, one more question actually that I forgot —
When “Big Endian” is not specified, does that mean the endianness does not matter?-
Replying to:
I assume you’re referring to this?:

Nah, endianness still matters there. I just forgot to put the endianness for that one lol
Should be big endian also
-
-
Based on the decompiled code, it seems like floats in SN are read with the java.io.DataInputStream.readFloat() method:

Tbh, I don’t the specifics of how the method works, but here’s some pictures of its code:



-
Replying to:
“Single format” is probably another way of saying “Single precision” , so I think I have the correct formula and im just bad at coding and math. Thanks
-
Replying to:
xd
-
-
-
-
Ok so I just got Python to print data on a stickfigure file.. kinda.
I mostly used the right converters for the right things, but there was a few problems with the floats, because I\’m not entirely sure I understand the IEEE 754 standard for storing floats in computer data. I looked it up a bit and tried to wrap my head around the formula and it sort of worked out but there was bugs that I only had a crappy bandage solution to
-
One thing I regret about the way I’m having python insert all this data is how I’m putting it into a list instead of a dict. I somehow forgot dicts are a mutable data type, and also forgot that they are downright easier to call elements from if you set it up properly.
-
Replying to:
This makes me feel like rewriting the whole stickfigure reader lmao oh my god help me
-
-
Kinda curious, but what exactly do you want to do with Nodes being written to .py? Like what’s your next step.
-
Replying to:
Krita is a painting and animation program (similar to Adobe Photoshop), and it allows you to create plugins for the program in the Python language. So basically, this is step 1, which is actually getting a stickfigure file as a python data type. Step 2 would be having a krita plugin read that python data and, well, render it on the canvas.
TL;DR – sticknodes pc
-
Replying to:
…
You and @vincetheanimator really gotta collab.
You’re both trying to do the same project so lmfao
-
Replying to:
Also @ralph I didnt expect this to turn into a sn pc development race. Who are you betting on?
-
Replying to:
not really the same exact thing, hes doing the stickfigure creator and im doing the actual animation part
so in a way we are collabing to be able to use Better Sticknodes™ without needing to even open sticknodes
-
Replying to:
i think something im worried about is ralph’s bank acc
because this wont require even downloading sticknodes, ralph literally earns $0 if someone grabs stickfigures from the site/makes them in open nodes, then puts the file into KritaNodes or w/e im gonna call it
-
Replying to:
Oh I’m just gonna shoot this off right off the bat, don’t try to make a place for people to submit sticks.
It’s a pain to manage.
That and also people will try to steal sticks from here, publish as their own etc. We have that issue occuring almost weekly with pivot sticks and private YouTube packs.
-
Replying to:
As for revenue, he will get to working on sn pc likely in 2023-2024. Plus site revenue. Plus sprite update price increase etc.
-
Replying to:
HEY SHUT UP
-
-
Replying to:
Yeah I was thinking about a stickfigure repository but I decided against it for that very reason.
also i dont even know if i will be done with kritanodes or whatever by 2023 im doomed
-
-
-
-
-
-
-
haha this is so cool!

-
-
About the polyfill header and body in your documentation:
Does Sticknodes require the polyfill information from the stickfigure file even if the current node\’s type is not a polyfill?-
Polyfill information is given after all node information, so not in between node data.
I like to think of the .nodes file structure as:
– Header
– Nodes
– Polyfills-
Replying to:
It’s useful to note that, while SN counts polyfill as nodes, they’re really just lists of node IDs (draw order indexes)
-
Replying to:
So polyfill data is not required for the node if that node’s type is not a polyfill, correct?
-
Replying to:
It’s not required for any node, and there is no polyfill node type
-
Replying to:
Ah — I get what you’re saying now:
All polyfills are defined in the polyfill section. I have no idea how I didn’t realize that, but it makes sense to me now.
Thanks-
Replying to:
Yeah, np comrade
-
Replying to:
No! You are both working Sticknodes projects! You are supposed to want each other to fail!
(I know you are bith working on different things, it’s a joke)
-
Replying to:
its actually a good thing that we’re both doing sticknodes projects, his open nodes thing will just remove the need to use the sticknodes fig editor, and my thing will remove the need to use the actual animation part
so its just sticknodes pc at that point if you put 2 and 2 together
-
Replying to:
Honestly for both of these to be happening at the same time it’s like stars aligned
-
-
-
-
-
-
-
-
-
-
The signed 8-bit int, signed 16-bit int, signed 32-bit int, and 32-bit float converters have been finished.
A.K.A:
node2python is finally almost finished. I just have to create a system to correctly analyze all the imported data and convert them correctly.
-
This may or may not cause you agony, but I just realized that I think there’s a Python library that does what you were going insane about yesterday:
https://pypi.org/project/binaryfile/
-
-
im going insane
i got the signed32BitIntBigEndian function almost working
but for some reason the second byte is deciding to not show up when i flatten the lists of base2 represented bytes together
it works with all other bytes but this specific fucking byte decides it does not want to be put into a flattened list todayit isnt the value of the byte thats bad or anything, i double checked right before i attempted flattening it into the list and its completely fine
out of my desparation i changed the name of it to \”byte1workpls\” but it did not want to listen
i even tried taking the byte out to mcdonalds to calm it down but still it didnt listenthen i realized i forgot to capitalize a letter in one of the variable\’s names and it fucking worked finally holy shit im so stupid i went through all of that how did i not realize
-
forgot to capitalize a letter in one of the variable’s names
wow python sounds like php
that is to say it sounds like hell
-
Replying to:
for some reason visual studio doesnt put red lines on some errors so you cant tell what the fuck is wrong with your code
worse, it didnt even highlight the error after the code was executed so i took an extremely long time just to narrow down the error to a single point-
Replying to:
that’s gotta be a setting
it shouldn’t compile and run without yelling at you, unless it just ends up deploying an old build because the new one has syntax errors
-
Replying to:
It compiles and yells at me sometimes depending on what kinda error it is
The reason it wasnt yelling at me must be because visual studio’s syntax error detection isnt case sensitive
and its not an old build either because i got errors that were occurring *because* byte1 didnt want to appear in the flattened list
-
-
-
-
Ok the 32 bit signed int big endian converter is finally finished holy fuck that took days
but now that i know how it works, it wont be hard to implement the others
unless its a floating point
-
- Load More















what the fuck was i thinking by the way
