Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Vim3D – A new 3D vi clone [video] (vim3d.com)
235 points by bkudria on Dec 11, 2013 | hide | past | favorite | 66 comments


The tagline should be:

Vim3d: Because 3d modeling software wasn't already hard enough to use.

Honestly if you want something in the spirit of vim for editing models, Blender already has a very confusing-but-efficient interface. (IE, pretty much everything is done via keyboard shortcuts that are optimized for using your left hand so you can keep your right hand on the mouse).


http://www.wings3d.com/

Super simple interface, and it's even written in Erlang.


Not really comparable to Blender: Wings3D cannot animate. Part of Blender's draw (pardon the pun) is its physics engine and animation suite. I cannot say for certain, but I suspect Blender's Cycles Rendering Engine is vastly superior to Wings' renderer.


Wings has a barely functional GL renderer.

However, for making static meshes quickly, and for doing UV mapping without wanting to stab yourself in the face, you can't beat it.

Blender:GIMP::Wings::Paint.NET

It doesn't do everything, but what it does do it is great at. Blender is just too baroque--much like the GIMP.


We were discussing 3d modellers, and in that area, Wings3D is excellent. It only does a small set of things, but it does them very, very well. You can then import those models and UV maps into blender easily.


"Super simple interface, and it's even written in Erlang."

Meaning that you probably still can't read email in it, but it can already do conference calls. ;)


I absolutely love wings3d. It's the only 3d modeling app I've been able to create really cool shit with. I just love the vertex, line, polygon, polyhedron operations. It really lets you just kinda sculpt stuff and perform mathematical transformations effortlessly.


I second the vote for blender. I always thought of blender as vim for 3d.


Super stoked to see this on here (very surprised).

The main idea is to have scripting language and/or scripting interface hybrid with graphical modeling, animation, and even raytracing. Parameters can even be controlled by other parameters or channels making this super extensible, for example, controlling color or position of objects with the envelope of a music file. Objects are infinitely composable with groups, much like illustrator or photoshop, allowing you to do interesting transformations as well.

It's really useful because it becomes a sort of assembly language for working with files, textures, etc., and saving them as a scene file which aggregates all of this.

There is more information here: http://www.vim3d.com/

Any feedback, thoughts, ideas appreciated. Thanks!


I've been thinking about building a 3d livecoding environment centered around emacs, so this very cool to see!

PS. To build the current source on linux, you have to fix the comment in the Makefile that starts with '//' and lowercase the 'Primitives' directory.


Could you share your ideas ? I'm thinking about 2d/3d 'modeling' on a keyboard centric user interface too; except for the part where analog input is the only sane way (even though I had some ideas about how to try this keyboard-only too).


It should be fixed now, https://github.com/pyramation/vim3d/commit/49d8f94fa7fbc4f27...

Thanks, the primitives caps issue was also fixed before this commit.


Really cool, but reading the title I was hoping that someone hacked up a (console based) vim clone that allows you to have multiple popup/floating windows (that aren't "buffers")...


100% of this is already common place. i doubt any Maya pilot even has the tool bar on the screen.

im not even a frequent user and i only move stuff around with hjkl and qwe. not to mention the backtick (or space bar?) to open up the one liner prompt to revolve, extrude, etc...


> i doubt any Maya pilot even has the tool bar on the screen.

I don't know Maya nor 3D editoes but I can see how this can be irrelevant, as it would be like comparing your favorite IDE keyboard shortcuts with vim's command mode. vim's power is in its modal interface and command composability thanks to text objects, adjectives and verbs. Also, having views handled like vim's buffers+tabs+windows instead of fixed situations.

To sum it up, vim is not just a bunch of hjkl keybindings. If this tool enables such a grammar and vocabulary in command mode, along with top to bottom scriptability of the editor's behavior, then it's worthy of the vim moniker. Otherwise it's just a misleading name.


Reminds me that Maya is a headless MVC `server` program that can be fed .mel statements. And now I wonder if there's an Emacs mode for .mel/maya.

</smiles>


;;; Rule34.el -- "If it exists, there's an Emacs mode for it. If there isn't, someone will make one."

http://www.emacswiki.org/emacs-en/etom.el



haha, brilliant, thanks.


To me vim means 'text editor.' This is a really awesome command-driven 3d Modeller. It's great but is it really a vim clone?

It offers a big improvement over the GUI of 3d modellers. 3d modellers interfaces are way, way, way, too complex because they are trying to stuff wayyyyy too many parameters into standard UI controls (i've used mostly blender, but way back in the days of 3d studio, infini-d, and ray dream the interfaces were also very complex, to the point of having a very steep learning curve). It makes more sense and is much more expressive to interact with the modeller via commands


You are right about the vim clone being the wrong description. That was a mistake on my part. A vim-like command interface to creating 3D scenes is more appropriate.


If you like the concept of scripted 3D modelling check out OpenSCAD. Instead of entering commands you create a script that build your model for you, including the option to use variables, loops and conditions to adapt your model to certain parameters. I use this for creating customisable 3D printable models and it works great if you know the basics.


The concept of OpenSCAD is great, but I think it is in need of some modernization. The last time I modeled something with it I discovered how inconvenient it is to do things like create threaded bolts/nuts... it may just be my inexperience with it, but there don't seem to be straightforward ways of creating basic shapes like helixes.


I think so, too. I was just browsing and came along this: http://www.pythonocc.org/

But it would be great to have a concept where you create a model of a table by creating a cylinder, copy and translate it three times, add a flat cube, connect these 5 pieces, and name them table. Then you would have another (non-)primitive that you can instanciate and maybe have some parameters to change it.


Isn't that what SketchUp does?


Which is cool, and that's why I like SketchUp. But AFAIK you can't switch to 'text' mode in SketchUp where you can edit the history and rebuild the scene.


Interesting - there is also a JavaScript implementation: http://joostn.github.io/OpenJsCad/


I've just played with the CoffeeScript implementation; It's pretty awesome and looks great: http://coffeescad.net/


Given that e.g. Blender has modal editing and single key operations ('s' to enter scale mode, then 'x' to scale along that axis) I imagine more commands along the path of Vim/Ex would be beneficial for fast mouseless input. And of course macros and such.


yeah my first thought this was was a reconfigured blender3d


This is kind of neat.

Here's what I'd like to see: libvim. Vim has already been ported to iOS, so it's obviously embeddable. I'd like to have an instance of vim running inside my program, and to be able to scrape the tty/screen.

That way, if I want to make a fancy Oculus VR editor, or any other IDE experiment, I don't need to re-code basic editor functionality. Yes, I know about Scintilla.


Vim will need a lot of code rewritten to support being embedded. This is a problem that has been worked on by many, and all have pretty much failed.

http://www.freehackers.org/VimIntegration

The best we have is vim as separate process in a client/server type environment, using sockets or some other non-ideal mechanism.


I implemented something like this in my https://github.com/lunixbochs/actualvim ST3 plugin.


Perhaps reworking the new evil-mode for emacs might be easier than embedding "real" vim.


I find it hard to see who this tool is for? 3d artists seem to prefer more graphical ways of interaction as opposed to scripting/entering commands.

Perhaps developers/statisticians/scientists looking to visualise their data?


I built vim3d for myself to use. I used to work for Side Effects Software as a 3D artist using Houdini (sidefx.com), which I then got deeper into programming, and vim was my text editor of choice.

I wanted to create something to enable me to build 3D content using a shell, but also having access to a graphical interface. When you use commands, you store the procedures or instructions for how to build something, so your work is more re-usable and stored as a scene file (plain text), vs. something like maya where you're graphically building and history gets deleted (in fact there is a delete history option in maya) and completely stored in binary or some very hard to read scene description language.

vim3d provides a simplified, very human-readable approach to its scene files that somewhat remind me of bash or assembly. And, as a programmer, you get the keyboard as your weapon of choice, with command history, undo/redo stack, and ability to save 3D scenes as programs that you can read back into the system to read or write later. Oh, here's another analogy: if vim3d is like vim, blender is like sublime text :)

Admittedly, much of vim3d's functionality (although not UI) was deeply inspired by sidefx.com's houdini if you are curious. Houdini is for the "engineers" of 3D designers in some perspective, whereas Maya is for the "non-technical" 3D designers.


I'm thinking storyboard artists for 3D animated movies would love this.


I doubt it. Think of the difference between someone who's unfamiliar with vim, versus an expert. I'm the former, so it ends up feeling too meta. I.e. I'm thinking about how to enter commands to do my work, instead of just having the work flow with no perception of tooling between me and the work.

Consider that artists have already become experts at sketching, at visual design, etc. For them, a pen or stylus or 3d program doesn't feel like tooling, but give them an unfamiliar tool and it will totally get in the way of creative expression.


On the other hand, even designers who are adamantly non-technical and refuse to get into any code ala HTML/CSS often still learn keyboard shortcuts very deeply in programs like Photoshop / Illustrator / InDesign.

The question to me is whether Vim3D is actually bringing significant improvement over whatever shortcuts exist in current 3d modeling software.


"use j and k to select between objects in a scene" reminds me of this:

http://www.youtube.com/watch?v=9BnLbv6QYcA


In case anyone is interested, I just put the project on github: https://github.com/pyramation/vim3d

It was originally in svn on google code since I wrote the code 3 years ago :)


Very cool. I'm not sure I would call vim a "bare bones" text editor though.


Yup... I guess they call it "vim" because key bindings are inspired on vim, but this is just a prove that keyword rocks much harder than any other interface :-)


It is compared to emacs.


so are most OSes...


Site has been successfully Hacker News'd.


It's slow, but still working. Features can also be seen in the following YouTube video: https://www.youtube.com/watch?v=P7Pbpq-bCP8


A 3$/month server can serve hacker news traffic fine (~100 realtime visitors). They usually sell with unlimited bandwidth..


more like ~250 online visitors at any one time from what I have seen


It probably depends on timezone. Friends posting here told me it's no use to post anything when US are asleep.

(edit : and btw, I've noted myself it's no use to post comments when I wake up from France, since it's already old news for US and they are asleep as well ;) )


I think Wings3D[1] is a better fit for 3d editor with Vim-like semantics, with a much more intuitive UI/UX for 3d modeling.

[1] http://wings3d.com


I do find this one a cool way to show usage analysis of system, such as commands like top, free, mtop, etc. which are currently giving reports in terms of numbers.


That sounds awesome. Can you post some example scripts? It outputs pngs or just loads up vim3d reading commands from stdin or something?


For additional I/O http://assimp.sourceforge.net/ is a nice option.


I added the .obj limitation as an issue, https://github.com/pyramation/vim3d/issues/2

Thanks!


Even though I am amazed by this, I am still not sure how usable this would be. don't get me wrong, its probably my lack of experience with 3d modeling in general. But good to see a somewhat off the track use case for vim



Hi, I'm the creator of vim3d. Let me know how I can help collaborate in anyway shape or form. I just posted on your google plus page.


The tool looks really cool. But I don't know if it is awesome enough to earn the name of my favorite text editor.


Not yet. Why don't you work on it?


I thought we would see perspective text editing and cube transitions for changing buffers.


I wish there was something like this for Minecraft world building.


How is this more like vim than any other 3d modeling software?


I'd like to see it do CSG before I download it.


Instant checkout.


A thousand times: yes!

(This makes me incredibly happy. Now I can enjoy scripting models. Just imagining Web Service API to Vim3D, or dare I say DjangoGraphviz to Vim3D.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: