Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/schwalbe-t/NanoCAD
A simple, text based 3D modeling program for low-poly models.
https://github.com/schwalbe-t/NanoCAD
Last synced: 12 days ago
JSON representation
A simple, text based 3D modeling program for low-poly models.
- Host: GitHub
- URL: https://github.com/schwalbe-t/NanoCAD
- Owner: schwalbe-t
- License: unlicense
- Created: 2022-11-13T12:12:57.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-13T13:56:07.000Z (about 2 years ago)
- Last Synced: 2025-01-21T07:43:31.014Z (12 days ago)
- Language: Java
- Size: 179 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ![logo](logo.png)
NanoCAD is a simple, text based 3D modeling program for low-poly models that is able to load, edit and save any `.obj`-file.![image](https://user-images.githubusercontent.com/78918080/201521310-9771a1af-3e4b-4fc7-ab89-09ae3b2b071e.png)
NanoCAD is entirely text-based. You never need to touch your mouse to edit a model.
The goal with NanoCAD was to create something that is easy to learn and simple to use.# Commands
Meanings:
- `` - The index of any mesh or it's alias.
- `` - The index of any vertex in the previously mentioned mesh.
- `` `` - Name to give to a mesh. May then be used instead of an index when asked for a ``.
- `(...)` - Optional parameter.
- `<... ("..."/"..."/"...")>` - Value may be one of the values in parentheses, without quotation.Commands:
- `help` - Shows a list of all possible commands.
- `vinfo/vi` - Toggles the visibility of detailed vertex information, showing position and texture mapping for each vertex. Disabled by default.
- `normals/nor` - Toggles the visibility of surface normals and their mesh indices. Disabled by default.
- `scroll/scr/s ` - Scrolls the mesh data view (top left) to have the given mesh in the center. The mouse wheel can also be used to scroll.
- `new/nw ()` - Creates a new mesh. When passing `3` for ``, a triangle is created. When passing `4` for ``, a quad is created. The new mesh gets the given alias, when one is passed to ``.
- `alias/al ()` - Sets the alias of the given mesh to a new one. When nothing is passed to ``, the alias gets removed from the mesh.
- `look/lk ()` - Sets the camera to always look at the center given mesh (or a specific vertex, if passed) until the `[ENTER]`-key is pressed or a new command is entered.
- `edit/ed ` - Edits the raw data of a given vertex. When `_` is entered as a parameter (except in `` and ``), the value is not modified.
- `move/mv ` - Enters move mode for the given mesh (until `[ENTER]` is pressed or a new command is entered), where the given mesh can be moved using the arrow keys. Pressing `[0]`..`[9]` moves that vertex only, while pressing `[A]` moves the entire mesh again. Pressing `[X]`, `[Y]` or `[Z]` moves it along that axis. Pressing `[ARROW_UP]` or `[ARROW_RIGHT]` adds the value of `` to the position value for the selected axis, while pressing `[ARROW_DOWN]` or `[ARROW_LEFT]` subtracts the value. The index of each vertex is also displayed while the command is active.
- `uv ` - Enters uv mode for the given mesh (until `[ENTER]` is pressed or a new command is entered), where the texture mappings of the vertices of the given mesh can be modified using the arrow keys. Pressing `[0]`..`[9]` selectes a specific vertex. Pressing `[ARROW_UP]` subtracts 1 from the texture mapping value for `y` of the selected vertex. Pressing `[ARROW_DOWN]` adds 1 to the texture mapping value for `y` of the selected vertex. Pressing `[ARROW_LEFT]` subtracts 1 from the texture mapping value for `x` of the selected vertex. Pressing `[ARROW_RIGHT]` adds 1 to the texture mapping value for `x` of the selected vertex. The index and texture mappings of each vertex are also displayed while the command is active.
- `invnor/inor ` - Inverts the surface normal vector of a given mesh by inverting the order of all vertices in the mesh.
- `copy/cp ()` - Creates a copy of the given mesh. The new mesh gets the given alias, when one is passed to ``.
- `remove/rem/rm ` - Deletes a given mesh.
- `clear` - Deletes all meshes.
- `load/ld ` - Loads the model from the `.obj`-file at `/files/.obj`, where the path root is the installation directory.
- `save/sv ` - Saves the model and a material file to `/files/.obj` and `/files/.mtl`, where the path root is the installation directory. The material file points to `.png`, so the current texture at `/res/texture.png` should be copied next to the model files and renamed to `.obj` before using the model.
- `texture/tex` - Reloads the texture from `/res/texture.png`, where the path root is the installation directory. When loading a model, the texture should be loaded BEFORE loading the model file using `load` or `ld`.# RoseQuartz
NanoCAD was made using [RoseQuartz](https://devtaube.itch.io/rosequartz), and exported models are also fully supported by the engine.