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

Possible duplication in the Project File Structure in the "My Setup" page #6

Open
sugan-reden opened this issue Nov 26, 2024 · 8 comments
Labels
enhancement New feature or request

Comments

@sugan-reden
Copy link

sugan-reden commented Nov 26, 2024

Hi!

I just found your site through the Quartz Showcase, and as both a 3D Artist and a programmer/game dev myself, I was quite happily surprised.
Truly a humongus treasure trove. A huge thanks for your tremendous work, it will definitely prove useful to me in the future.


Now onto the issue at hand.
I may be wrong here, but like the title says, there seems to be a typo/duplication in the Project File Structure presented.
Unless, that is, you do really use a file structure with two directories named "Blender"?
If it is so, then I would like to inquire about the reason, by curiosity.

image
Included this for good measure.

Sidenote:
This makes me think there may be another typo in the hardware section below, in the Huion Kamvas point, currently named "Kamas".


Out of context, but related:
Also, forgive me as I have not read all of it yet so the following may come out of ignorance, but I would like to know how you handle projects that are multidisciplinary, in terms of workflow. For example, projects that go through the whole suite/process of software in production.
Do you leave to them to each their own software directory, or have a temporary file transfer/conversion directory to transfer files to other software?

I would also like to know what the nesting level under this looks like (Level 2/3?).
And, as a suggestion, what would you think about including example/dummy files to show an example of how you organize your files in directories further below.
Something like this perhaps:

Modelling-Sculpture
L____ Blender
         L_________ example1.blend

Thank you for reading me :) And good day to you ☀️

@sidney-eliot
Copy link
Owner

Hi there, first of all I'm happy you took the time to comment about this stuff. Working on this handbook which over time has become quite a big thing, means that many mistakes will go unnoticed by my two eyes, especially when spending a lot of time working on the pages, basic mistakes start to become drowned out. The things you mentioned should now be fixed / improved in the live version of the handbook.

Also because of your other question, could you elaborate. When working between modeling software like Blender, ZBrush, Maya and ZBrush iPad I use one-click solutions in the form of transfer add-ons, more on that here: https://sidney-eliot.github.io/3d-artists-handbook/model-creation/workflow-between-zbrush-and-blender. For other software like Marmoset or Unreal I would have folders similar to what is now in the updated example.

If you have any further gripes or suggestions for the handbook, I would be happy to hear them. You can either create an issue as you have here, or write me on discord, which is probably better for back and forth conversations (my discord id is: "epicrex")

@sidney-eliot
Copy link
Owner

I just noticed that I might have gone a bit overboard on the example and it might now be hard to read. I'll maybe think of a cleaner way to show the folder structure.

@sidney-eliot sidney-eliot added the enhancement New feature or request label Nov 26, 2024
@sugan-reden
Copy link
Author

Hi, sorry for taking my time to answer, this week was crazy.

The things you mentioned should now be fixed / improved in the live version of the handbook.

That's great! I just took a look at it, and I think it's going in the right direction.


For other software like Marmoset or Unreal I would have folders similar to what is now in the updated example

Don't worry, this was indeed what I was wondering about. I believe that in the previous version, I didn't see any "transfer" folders for software that don't have a great import/export compatibility plugin/add-on.
That said, based on the new structure, I'm guessing you leave them in their respective software directories, in a "... Output" sub-directory, is that correct?


If you have any further gripes or suggestions for the handbook, I would be happy to hear them. You can either create an issue as you have here, or write me on discord, which is probably better for back and forth conversations (my discord id is: "epicrex")

Understood and noted, although I like leaving issue-related discussions on the repo of choice, for records, availability to others and posterity, I don't mind either way. I don't use Discord very often these days, but I'll look into getting back into it.


I just noticed that I might have gone a bit overboard on the example and it might now be hard to read. I'll maybe think of a cleaner way to show the folder structure.

I thought about this too. In my mind, I have two suggestions.

Suggestion 1

Maybe splitting the top Projects directory and an example-project's directory into two sections?

Like so:

Section 1 Projects Root Directory or Project Main Folder (or what you feel is best)

Projects/
├── Character Projects
├── Creature Projects
├── Environment Projects
└── Studies

Section 2 Example Project Structure (or Character Example Project?)

Character Projects/
└── Astro Girl/
    ├── Reference/
    │   ├── AstroGirl.pur
    │   └── ...
    ├── Textures
    └── ...

Suggestion 2

Maybe it's just me, but I can't seem to find the source files so I don't really know how you made it, but is there a way to possible clean the tree structure?

You probably already thought about this too. But I find the branches quite jarring, since they all look like they're starting from the root ^^.
I'm curious, since I haven't got to use Quartz yet, could that be the Quartz renderer acting up?

My suggestion would be to perhaps put it into a code block (or literal/verbatim block), but that might make you loose the emojis :(.

Misc.

Related, but not totally directly. Do you have a rigid file name structure?
Like do you use pascal case for everything? Do you blend it in with kebab or snake case?
Or do you use camel case for 3D-only files like some are wont to do?

If you do, what would you think about adding it? And describing your thought process on how you use it, and why you prefer it the way you do. Or if you're flexible to the needs of the project/company's already placed convention naming system, etc.

@sidney-eliot
Copy link
Owner

Yeah I think you're right with this being better via issues. I don't have much time today, but I can quickly answer your last question.

I very much try to never ever touch my C disk as I hate how windows clutters it up by automatically creating files and installing things into it and how folders like "Program Files" have a spacing. For my PC I mostly keep everything PascalCase and kebap-case for my NAS. But in both cases I often switch over to Camel Case with spacing at, or close to file path endpoints. Only ever of course if the software that will be using that doesn't have problems with it.

This is something I have thought long about in the past and been on the fence for quite some time, thinking that it might be better to keep everything snake_case or kebap-case. But I eventually settled on a mix of what I mentioned above as I thought that there will anyway be some files that have spacing so why not give my eyes the satisfaction of nice folder names in non critical areas. It can make navigating around in terminals or using scripts a bit more of a hassle, but I find it to be worth it.

@sidney-eliot
Copy link
Owner

@sugan-reden The file structure is quite pretty now. That purple block acts like normal markdown, so adding in spaces is a bit annoying.

Also you can view the raw markdown files by switching to the v4 branch (The readme at the bottom describes which folders contain what)

@sugan-reden
Copy link
Author

sugan-reden commented Dec 4, 2024

Heya, you bring up some nice points \o__o/

I very much try to never ever touch my C disk as I hate how windows clutters it up by automatically creating files and installing things into it and how folders like "Program Files" have a spacing.

That's interesting, I do remember thinking the same way in the past. Nowadays, though, I got back to using the C: disk for the most used/important software, while still leaving the project files on another disk (mainly D:). Mostly speaking for 3D here.
I mainly went because of, I don't specifically know why, but while trying to install some 3D software like Maya and Zbrush in isolated environments -- in a directory of D: -- I still somehow had some files installing on the C:. This arguably may be a skill issue on my end. Were you able to do completely isolated installations of your 3D software?
The second reason was to have an easier time while programming, to not have to switch disks so often, and not have to play with environment variables issues. I'm curious if you've gotten any of those? I'm assuming yes, but I'd be curious to know how you overcame it.


For my PC I mostly keep everything PascalCase and kebap-case for my NAS.

Nice choices 👌

But in both cases I often switch over to Camel Case with spacing at, or close to file path endpoints.

Interesting 🤔. When you say camelCase with spacing, do you literally mean with whitespace? Like this -> astroGirl render 001.png?

Only ever of course if the software that will be using that doesn't have problems with it.

That's nice 👍. May I ask for examples as to what software accept this?


The file structure is quite pretty now.

I just saw, and I agree ^^, good work! 👍

That purple block acts like normal markdown, so adding in spaces is a bit annoying.

Oh... I perhaps should have asked about this before, but how did you write the file tree? By hand?

If so, then for next time -- if there so happens to be one -- you might be interested in the following resource (assuming you don't already know it):

https://tree.nathanfriend.com

This one is only an example, there are more out there if you don't like this one in particular, it just happens to be the one I've been using lately for quick formatting 🌊.

I also thought you could place literal blocks inside admonitions/callout blocks 🤔. But then again, I haven't gotten to using Quartz fully yet so I don't really know in this particular case.


Also you can view the raw markdown files by switching to the v4 branch (The readme at the bottom describes which folders contain what)

Real nice, thanks 👍. Would you be open to pull requests? I may consider making some for next time I see something. I'd understand if not, this is still your handbook after all.

That makes me think, this is beyond the scope of this issue, but have you ever considered forking the project and opening it to all (open contributions)? Or is that already how the current project is set up?
This isn't so much of a suggestion, more like simple curiosity.

@sidney-eliot
Copy link
Owner

Hi there Sugan

Heya, you bring up some nice points \o__o/

Stay strong and keep away from the evil yet alluring clutches of C 😉

But yeah it obviously also depends on how your PC is configured. I made sure to only buy a 500GB SSD for C. And have D, E and F each with a couple of terabytes

That's nice 👍. May I ask for examples as to what software accept this?

Pretty much all software accepts it (mostly the ones I come across that don't are small open source tool or script software made by a solo dev). But still core software structure should be in directories without spacing. But content for that software like a folder that contains add-ons for said software, really doesn't need to follow the strict no spacing policy and if it does cause issues, one can easily fix the folder name without breaking anything (the worst thing that could happen is that one has to set a new path). For folder where software or framework libraries are stored or things that are in the env path or linked to the windows registry, renaming folders isn't an option. So in that case one should assume folders with spaces will cause issues.

Oh... I perhaps should have asked about this before, but how did you write the file tree? By hand?

How I mostly do trees, is by creating the folder structure in the explorer, opening a terminal window and executing the tree command and then copying the result. But in this case I had to add lost and lots of  . I now notice that the smarter solution would have been to temporarily modify the the CSS of that purple block to not align the text to the left and then unset that custom CSS after the purple block. (As with tags one can embed HTML directly into markdown)

https://tree.nathanfriend.com

Yeah that's a lot easier 🥲, thanks

Interesting 🤔. When you say camelCase with spacing, do you literally mean with whitespace? Like this -> astroGirl render 001.png?

If you look closely you'll notice that whenever I talk about a case, I use those two words to show the case in action. But maybe there's a proper name for that case, let me know if you know it.

I haven't gotten to using Quartz fully yet so I don't really know in this particular case.

None of that is Quartz related, it's all Obsidian. Quartz only helps host an Obsidian instance, by recreating the Obsidian project as a nice website.

Would you be open to pull requests? I may consider making some ...

I didn't really have the need until now as you are one of the first that has shown interest in contributing. In general I would be open to that. I would have to adjust my workflow a bit however, as currently I keep changes for some weeks up to months in my Obsidian and then push the changes. This is mainly because when I'm rewriting and overhauling pages or adding new stuff, and I push everything together there's often something that isn't done yet. (So maybe pushing pages alone is what I should be doing instead). I'm actually kind of embarrassed to admit this, but for this handbook I don't use any kind of version control software, all I use is the quartz built in sync command.

... but have you ever considered forking the project and opening it to all (open contributions)? ...

Not quite sure what you mean with that. Wouldn't those that want to push things create their own fork. And also forking is something that always works on every repo and can't be blocked


Hey it's me again, a couple of hours after writing the stuff above. I have now set up GitHub Desktop and am kicking myself for not using it earlier for this handbook 😑. I also created a CONTRIBUTING.md as well as a CODE_OF_CONDUCT.md and updated the branch rules. Everything should be ready now to create forks and pull requests. Using a version control software now, also removes the issue I mentioned above where merging with changes from others would be a pain, and I will now also push single pages and small changes as soon as they are done.

So why not give it a try. I'm sure you'll find some missing comma somewhere 😅

@sugan-reden
Copy link
Author

sugan-reden commented Dec 7, 2024

Heya!

Stay strong and keep away from the evil yet alluring clutches of C 😉

lol. I think I will try to get back to trying that, at least with 3D software, maybe less so for programming and game dev software.

But yeah it obviously also depends on how your PC is configured. I made sure to only buy a 500GB SSD for C. And have D, E and F each with a couple of terabytes

For sure ^^. Also, that sounds expensive, but also really cool ✨

Pretty much all software accepts it (mostly the ones I come across that don't are small open source tool or script software made by a solo dev). (...)

That does happen lol 🙂‍↔️

But still core software structure should be in directories without spacing. But content for that software like a folder that contains add-ons for said software, really doesn't need to follow the strict no spacing policy and if it does cause issues, one can easily fix the folder name without breaking anything (the worst thing that could happen is that one has to set a new path).

Mostly agree with this 👍. I this a case where you would enforce your own 'Camel Case'?

For folder where software or framework libraries are stored or things that are in the env path or linked to the windows registry, renaming folders isn't an option. So in that case one should assume folders with spaces will cause issues.

That's what I was thinking about. When I tried to install some 3D software on the D:/ disk, some of these core files bled through and still installed on the C:/ disk... 🫠 Thus the probable skill issue on my part. Are you saying you succeeded in completely isolating the install to the D:/ or other disks?

How I mostly do trees, is by creating the folder structure in the explorer, opening a terminal window and executing the tree command and then copying the result. (...)

That is indeed a nice way of quickly checking the layout of a select directory. It's how I still do it in some cases where I want something visual, or to check if I laid things out the right way when checking docs, etc.

Yeah that's a lot easier 🥲, thanks

👍


But maybe there's a proper name for that case, let me know if you know it.

Haven't found a proper name for that yet, so I'll just say x case with whitespace lol, or write them auto-logically.

If you look closely you'll notice that whenever I talk about a case, I use those two words to show the case in action.

I did wonder if you were writing auto-logically or not. Now I know. 👌

However, knowing this, in this case:

For my PC I mostly keep everything PascalCase and kebap-case for my NAS. But in both cases I often switch over to Camel Case with spacing at, or close to file path endpoints.

I believe the Camel Case you mention would actually be whitespace Pascal Case or Upper Camel Case, right? Or did you mean
camel Case?

Just so we're on the page, I searched this as a source: https://en.wikipedia.org/wiki/Naming_convention_(programming)


None of that is Quartz related, it's all Obsidian. Quartz only helps host an Obsidian instance, by recreating the Obsidian project as a nice website.

Ohhh I see ^^ Nice! I was wondering about the specific usecase parts of Quartz. Knowing this, would I be correct in assuming it uses Obsidian's markdown parser for content?

I didn't really have the need until now as you are one of the first that has shown interest in contributing. In general I would be open to that.

Woot! Nice ✨ ^-^/

I would have to adjust my workflow a bit however, as currently I keep changes for some weeks up to months in my Obsidian and then push the changes.

We could definitely try to figure that out as we go. I'll adjust to your release cycle.

This is mainly because when I'm rewriting and overhauling pages or adding new stuff, and I push everything together there's often something that isn't done yet. (So maybe pushing pages alone is what I should be doing instead). I'm actually kind of embarrassed to admit this, but for this handbook I don't use any kind of version control software, all I use is the quartz built in sync command.

Oh! I didn't know Quartz managed up to that point ^^. Thinking about it, it does make sense though as -- as I understand it -- it is primarily meant as a done-and-go instance publisher for your Obsidian vaults, yeah?

Not quite sure what you mean with that. Wouldn't those that want to push things create their own fork. And also forking is something that always works on every repo and can't be blocked

This really is my bad, I kinda brainfarted on the wording of this.

What I meant was, what you do think about splitting/dissociating and opening the project as a community project?

Something like:

graph LR;

    A("Current 3D Artist Handbook");
    B("Your '3D Artist Handbook', linked to your personal Obsidian notes");
    C("Contributions/Community Open '3D Artist Handbook', initially duplicated from your notes, but not necessarily linked to your notes");

    A-->B;
    A-->C;
Loading

In the sense that you would still be able to keep you notes isolated. I'm not saying that this is something to do, I'm just asking about this because I am wondering what you think about keeping your notes personal to you, as opposed to opening them up for anyone to edit.


Hey it's me again, a couple of hours after writing the stuff above. I have now set up GitHub Desktop and am kicking myself for not using it earlier for this handbook 😑. I also created a CONTRIBUTING.md as well as a CODE_OF_CONDUCT.md and updated the branch rules. Everything should be ready now to create forks and pull requests. Using a version control software now, also removes the issue I mentioned above where merging with changes from others would be a pain, and I will now also push single pages and small changes as soon as they are done.

Heya! 🤯 That's great to hear!
Version control is indeed great for managing any type of project, be they individual or collaborative 😄. I will get on to reading them and check it out :)

So why not give it a try. I'm sure you'll find some missing comma somewhere 😅

Definitely going to try it! 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants