Holopad - A Hologram modelling GUI/exporter

One day last year I got annoyed because I was trying to make a detailed holo model and twiddling numbers in E2 isn’t fun.
Instead of doing the logical thing - flip the computer through the window and go outside - I decided to spend more time creating Holopad than finishing that model would ever have taken :v:

What this thing does is allows you to create a hologram model with a modelling program (like 3DSMAX or Blender) and then export the model into an E2 chip - without ever touching a line of E2 code. I tried making the layout of the editor as intuitive as possible, and so far I haven’t heard (many) complaints. We’ve used it so far to create vehicle parts, hats, characters and weapons, and I can’t wait to see what you’ll do with it!

I think that Holopad is complete enough to release it to a wider audience, but be aware that it’s still in development. (that being the reason why I decided to post here :slight_smile: )
I’ve been testing it with friends for a while now and we haven’t discovered any huge bugs for a while, so today I’m setting it loose.

[h2]Pix for clix;[/h2]
UFO to E2 in 10 seconds;
[img_thumb]https://dl.dropbox.com/u/902553/Pictures/Screens/Holopad/release/lol1.png[/img_thumb] [img_thumb]https://dl.dropbox.com/u/902553/Pictures/Screens/Holopad/release/lol4.png[/img_thumb] [img_thumb]https://dl.dropbox.com/u/902553/Pictures/Screens/Holopad/release/gm_construct0004.jpg[/img_thumb]

Now with holoModelAny support!

Screenshots of the development process

[h2]Super Classy Art Gallery[/h2]
Programmer art by me;

Superior art by The Emperor of Justice!!!;

More art incoming!

The current release can be found below. This addon runs on GM 12!
Google Code (.zip)
SVN Download (Google Code)

In order to use Holopad, download it from a link above, put it in your addons folder, open your console and type Holopad. Bind it to a key if you like :v:
The buttons on the top strip are basic commands: save/load from project file, export to E2, spawn/delete holos, and the various tool-modes you’ll be using to make your model. When you select a tool-mode, relevant operations will appear in the panel on the right. You can spawn holos by clicking on the “Spawn Holos” button and then selecting a holo from the spawn menu on the left. Make sure to save your progress regularly in Project files by using the “Save to PRJ” button. EXPORTING TO E2 IS NOT THE SAME AS SAVING YOUR WORK
If they’re needed, I’ll create a series of video tutorials on how to use the editor. I can’t start on these right now but I’ll definitely do so when GM13 comes out.

[h2]Bug reports and suggestions![/h2]
I’m damn sure that I’m not the perfect programmer, so there will be times that you’ll come across a bug or two. If you find a bug, please report it in here, PM it to me or send me an email. I’ll love you forever (0.1% homo).
If you have an idea for a feature or an improvement, please contact me in the same way as if you had a bug (easier for me to find!) Half of the features in Holopad were requested by my beta team, so I’m more than likely to add your suggestion too if it’s sensible!

[h2]Planned features[/h2]
The current TODO list can be found at: http://code.google.com/p/holopad/wiki/TheAlmightyTODO

I did most of the work (code, textures etc), but I’d be far behind if not for these people;
Cre8or, Lubstar, PcmciaKai, The Emperor of Justice!!! (sorry if i forgot anyone) : The contributing beta team
The Emperor of Justice!!! created the default “Holopad” Project file
The Gluttony community for putting up with my development thread :v:
Vercas; contributing a holo creation template and creating the vON de/serializer (tyvm, it rocks!)
The FP build community for helping me test the earlier versions of Holopad.
The FP lua community for answering questions and being awesome.
Divran for fixing the scaling problems with tiny holos.

Have fun!

I’ve been watching your progress on this for a while and i’m glad to see you finally finished it. I hope you keep improving it, because things like this keep WIREMOD alive.

I can’t wait to finally make some detailed gauges for my cars! Thanks so much for this, especially in conjunction with unrezt’s new alphabet models.

Updated! Added model selection window and holo selection list.


Download from google code or checkout the svn.

And some more art from The Emperor of Justice!!!;

One of my beta guys is having trouble with this update but I can’t replicate his problems. I’m putting it down to installation difficulties :v: Tell me if you come across the same, I didn’t change anything that could kill the startup though.

Thanks so much for this great tool. I’ve already accustomed myself to manually coding holograms, but I’m sure this will cut down on time immensely once I get used to it.

New version, BETA 5.3 (released due to prominent bugfixes)
Download/SVN at Google Code

Changelog (i love svn!);

Fixed entity dialogue not showing changes in the scene.
Fixed small logic error handling entity selection dialogue.
Removed debugging print calls from entity dialogue.
Fixed number boxes not updating in the scale and angle windows.
Reverted optimization on angular snap which broke it.  Oops!
Added viewport lighting persistence
Added new grid styles.
Added support for changing grid styles.
Added grid style persistence.
Increased E2 export precision to 6DP
Using compact number representation in E2 exporter
Today is the 26th! TODO: automate the date.


I don’t care how long it will take, but I’ll convert my existing E2s to holopad files just to see how badass that’ll look in a WYSIWYG-style 3D editor.

Have all of my cookies.

Do you think that at some point you will make them have physic meshes? It would be a great addition in my honest opinion.

Unlikely, sorry. The scope of the project is a holo modelling studio, solid holos don’t really fit in there.
Not even sure if it’s possible in GM12. I’ve seen some amazing things in GM13 though so here’s the deal; If you manage to convince someone to create an addon which generates collision meshes for a group of models and then manage to get the addon into the Wire core or UWSVN, then sure I can add that! :v:

New version, BETA 5.4!

I’ve implemented a new E2 exporter which is more compact than the old one and supports unlimited holos and clips! No bugs or faulty exports so far.

This update uses the NEW error() E2 function.  Update your wiremod before using!

Download/SVN @ Google Code


I keep finding myself Trying to hold shift and moving a hologram to instantly clone it. Think you could add in that feature? It’s used a lot in 3ds Max, Maya, … Spore xD

Perhaps While on the subject of popular hot keys:
Shift+Drag :Clones selected hologram
Control + Click : Select Multiple Holograms
Control + Shift + Drag : Draw Bounding Box to select multiple Holograms
Delete : Deletes Selected Holograms.

Clicking the actual hologram should be able to select it as well, instead of being forced to use the handle.
Clicking Handles multiple times to cycle holograms in the same space…
Clicking an Item in the list should immediately select the hologram corresponding
Drag Items in the list to reorganize

I’m really just spit balling, but it’d make the program so much more intuitive =D

triple edit!
On another note, it seems your new version of exporting is messing with clips?

I don’t mean to be a hassle, but being new to holograms and learning them with e2, this latest exporting method is exceptionally complicated to me. I don’t understand why my runOnTick(1) commands don’t seem to be working anymore, or why it’s not updating the needles to rotate. It’s like theres something else going on in this new code and i… I just don’t understand what im reading.

Find which one of the Holos[#,array] is your needle.

Go down to HoloSpawned write a new holoAng(#,ang()) inside the function brackets to overwrite the holo angles, and put your RPM code in there.


#[ Unnamed Holo ]#   ** Holos[6, array]** = array(vec(0.0000, -32.9132, 41.2338), vec(0.3000, 0.3000, 13.0740), vec4(255, 255, 255, 255),** ang(0.0000, 180.0000, 0.0000)**, "hq_rcylinder", "", 0)




    TotalHolos = Holos:count()

    if (0 > holoClipsAvailable()) {error("A holo has too many clips to spawn on this server! (Max is " + holoClipsAvailable() + ")")}




#You may place code here if it doesn't require all of the holograms to be spawned.



if (HolosSpawned)


    #Your code goes here if it needs all of the holograms to be spawned!

      **holoAng(6,This:toWorld(ang(0,180+RPM/Stuff,0)))  # and put your RPM code on this using the 6th Index as we see up on the array**


Thanks, I’ll re-add the old exporter as an option until I figure out what’s wrecking your export. Can you send me the savefile of that model so I can use it in debugging? (should be in garrysmod/data/Holopad)

The only reason the circle handles are in Holopad is because clientside models don’t have collision meshes, and therefore I can’t use traces to determine which holo you want to select. You have to use the handles because I can’t think of any alternative that will work once coded.

Multi-click selection cycling and list re-organizing are not currently feasible. I will make them so if they become a popular request.

Also yeah keyboard shortcuts are on the TODO list, they’ll appear eventually and I’ll be sure to include the ones you listed. Cheers!

Also, one of the reasons I added the naming feature in Holopad is so that you can easily find your holos in the E2 code :wink:


Holopad BETA 5.4.1 adds a checkbox to the E2 Export window to allow exporting with the old E2 format.

Google Code

What about adding a ‘New’ button, to make it easier to start from scratch, instead of saving a blank file and loading it. heh :smiley:

Apparently the reason my clips were weird had something to do with my private server not having holos set to being any model at all. >.>

So I’m in the clear? Thanks for posting back, I was checking over my code and was a little worried :v:

Took a break today. The monkeys will resume work tomorrow!

New version, BETA 5.5! The real reason I wanted to put this update out quickly is because of the third item in the changelog.

A few people were getting confused about the new E2 export code, so I made an intermediate-level tutorial on it: New E2 Export format: HOW TO.
Tell me if the tutorial is confusing. Tips for clarification, etc. This is not a tutorial on how to E2, just one on the export format.

Added Autosave options to the Save button
Removed the clip-plane warnings.
Added wiki link to the new E2 exporter.
Fixed bug in persistence library concerning boolean false.
Verified that autosaves do not overwrite original project files.

Download/SVN @ Google Code


This is probably one of the coolest things I have seen made for gmod. Good work!

Will there be an ability to Import holograms?