CCP WebGL updated!

This is probably one of the best news for T’Amber and me in a long time: a CCP dev Filipp (we don’t know his CCP nickname yet) has updated CCP WebGL library to use V4 shaders, and moreover he did a complete model export up to date with EVE Tiamat release. What this means is that third-party projects like LMeve and Jeremy can again display all ships in EVE in full glory with up to date shaders and models!

The new webGL library is a little different from the previous one, because it is using the new SOF mechanism (Space Object Factory) instead of plain .red files.

For example, to load an Onyx heavy dictor, old javascript call looked like this:

var ship = scene.loadShip('res:/dx9/model/ship/caldari/Cruiser/CC2/Kaalakiota/', undefined);

and new call is a little different:

var ship = scene.loadShip('cc2_t2a:kaalakiota:caldari', undefined);

You probably noticed that instead of a file name we have three “ship DNA” strings now. The mapping between ship’s typeID and the corresponding SOF entries are stored in graphicIDs.yaml, which is available in Static Data Export:

graphicID description sofFactionName sofHullName sofRaceName
38 Caldari Frigate Bantam caldaribase cf1_t1 caldari
39 Caldari Frigate Condor caldaribase cf2_t1 caldari
40 Caldari Frigate Griffin caldaribase cf4_t1 caldari
41 Caldari Cruiser Osprey caldaribase cc1_t1 caldari
42 Caldari Cruiser Caracal caldaribase cc3_t1 caldari
43 Caldari Battleship Raven caldaribase cb1_t1 caldari
44 Minmatar Frigate Slasher minmatarbase mf1_t1 minmatar

I have already updated LMeve to use the new library, but because of a small issue (more on that below), it currently only works if your LMeve is served using HTTP.

Updated Onyx model

Public LMeve Database has been updated as well. Here’s an example page with the Amarr Confessor (please note you must press “3D” button for the WebGL preview to load).

All roses have thorns

Unfortunately the current version of the CCP webGL library has some drawbacks, too:

  • there are two model/texture sources now (so a simple reverse proxy like the one I’ve developed for LMeve won’t handle it)
  • both sources use HTTP, so modern browsers like Chrome will trigger a security error when trying to load HTTP based resources from HTTPS based website.

The latter is a very simple thing and I’m sure Filipp will be able to correct it. With CORS headers now properly set on CCP CDN we no longer need a proxy to serve models and textures.

New version of Jeremy in the making

With the new webGL library T’Amber sees a lot of potential to improve Jeremy. the new version would be using dynamically generated list of ships (instead of hardcoded list maintained by T’Amber). I will help with all the backend work (for example serving all SOF and invTypes data by JSON API).

Here’s a little teaser:

Stay tuned, because we are working hard to deliver you the best possible out of game ship spinning experience 🙂

AVvDxvj cpj6GjW

LMeve dev blog: important fix in dates, proxy and one more thing

Hi space-friends!

I won’t lie to you, I haven’t been playing much EVE lately. All the spare time that I was able to find was used to improve and fix LMeve. And Aideron Technologies found a big-badda-bug this time.

On the last saturday of January, a corpmate asked me why he can’t see the effect of his fire sales on the corp wallet graph in LMeve. It was the last day of January, and all graphs showed an empty bar for January 31st.

First I thought that poller might have stopped and we don’t get up to date API data. But I was quickly proven wrong, because I could clearly see all the recent market transactions in the database. “Must be a mistake in code that feeds database values to the graph” I thought. But when I checked that code, it only confirmed what I saw on the graph: that the value for the last day is indeed equal zero.

If the data is in the database, then it must be some kind of a presentation error; there is simply no way last day should show zero!

Let’s have a look at the database query used to retrieve the wallet data for a specific month. The clue must be there!

SELECT SUM(awj.amount)/1000000 AS income,date_format(, '%e') AS day FROM
apiwalletjournal awj
JOIN apireftypes art
ON awj.refTypeID=art.refTypeID
WHERE BETWEEN '${year}-${month}-01' AND LAST_DAY('${year}-${month}-01')
AND awj.corporationID=${corp['corporationID']}
AND awj.refTypeID <> 37
AND awj.amount > 0
GROUP BY date_format(, '%e')
ORDER BY date_format(, '%e');

Everything looks good from here, we SUM all transactions with positive “amount” field, and group them by the “day”. Of course I want output in millions of ISK, so I divide it by 1 000 000. Then we only select records between ‘$year-$month-01’ and the last day of the same month. Everything else is just filtering the correct corporation (because one instance of LMeve can monitor many corps at a time), filtering out player donations (refTypeID 37) and ordering the output by day, so we get a list of values for an entire month, from 1st day till the last.

How come this query will always return zero for the last day? Maybe that LAST_DAY() function actually returns last-but-one day?

SELECT LAST_DAY('2015-01-01');
one row selected

Hmmm, it works exactly as advertized…

Or does it? Records in the wallet journal table don’t just have a DATE of the transaction, they have a full DATETIME! And what LAST_DAY() returns, is midnight on the last day of month! The entire timespan from midnight of that day until 23:59 that day is… well… filtered out. That explains why the last day was always missing.

How to fix it then?

Well, since we’re missing exactly 24 hours, it’s as simple as adding 1 day interval to the output of LAST_DAY():

WHERE BETWEEN '${year}-${month}-01' AND DATE_ADD(LAST_DAY('${year}-${month}-01'), INTERVAL 1 day)

LMeve CDN proxy

Now something else. As you know, I am now hosting T’Ambers ship painting tool – In short, the problem was with the CCP CDN not setting Access-Control-Allow-Origin * in the header for users in AU and NZ regions (or some transparent proxy on the way stripped that header). Regardless, the end result was that T’Amber’s tool was unable to fetch 3D models and textures and ended up with a blank screen. I had a similar issue in LMeve a while back, and I made a very simple proxy in PHP, which would fetch the file from CCP CDN using curl, add the necessary CORS headers, and then send it back to the user.

The original proxy was really crude and could cause unnecessary network traffic, because every time user asked for file ‘A.png’ I would download file ‘A.png’ from CCP CDN, even if I have downloaded this file five seconds ago! Couldn’t I just save the file on disk, so I only retrieve each file once? Well, I’ve added the necessary logic, and the file is now saved in a cache, so I only retrieve each and every file once.

Now the second thing we needed was Analytics. It is a simple thing really: it’s statistics and visibility. I keep a log that contains information about the file (filename, path and its size in bytes) if the file was served from my local cache or retrieved from CCP servers, when it was retrieved, and the IP address of the client (which makes pretty much a standard proxy log). Once I have all this information, I can plot pretty graphs showing how many unique users were there on any given day, how many files they retrieved, and how much traffic they created:


Happy ship painting!


One more thing

As you have noticed on that last screenshot, LMeve has a brand new skin. That skin is not just a random beige palette. I recently learned of a color scheme which improves readability in text and programming editors, dubbed “Solarized“. That colour set contains 8 monotones and 8 accent colours which have several unique properties. First, they cause much less stress on the eyes, and second, they are displayed correctly on old and new displays, even on intentionally miscalibrated ones.

These two new skins have been added under Settings -> Preferences: solarized-light.css (above) and solarized-dark.css (best for night owls). They are way more minimalistic than original LMeve skins, and they don’t contain too many images, which makes them “work-safe”.


Hint: you can go further and remove all the images from LMeve. To do that, simply make a copy of your favourite skin .css file (they are in /wwwroot/css/ directory) and add this code:

img {
visibility: hidden;

This will hide all the images (character portraits, item icons and so on), but will retain the space that these images would normally occupy. This way LMeve remains completely usable, but becomes a “text only” application, that looks like everything but game 😉

Mobile apps for EVE Online on Windows Phone


» For iOS and Android apps please view this post «

About two years ago I’ve written a post about iOS and Android apps for EVE Online, but I didn’t have any Windows Phone device at the time, so I had to skip this fledgling platform. Said post has become very popular and is one of my top post to the date. Few months ago I’ve become owner of Nokia Lumia running Windows Phone 8.1, so I am now able to test EVE apps on Windows Phone. Enjoy!

Windows Phone 8 apps

EVE Mail

EVE Mail is in-game mail client. Entering API Key is straightforward – simply press the plus sign on the first page. Once you’ve done that, your characters will appear on the front page. Each toon has their own set of mailboxes including “Inbox” (all mail), “Personal” (character mail), “Corporation” (corp mail) and “Alliance” (as name says). You also see your “Mail lists” and “Sent” which holds all messages you’ve sent. XML EVE API does not let messages to be sent from device, so this app is of course read-only.

Unfortunately the app does not have a Live Tile, which would utilize one of the most powerful features of Windows Phone. There is also no notifications when new mail arrives – you have to open the app to manually refresh the mails.

All in all, the app is still useful, because it gets the job done.

eve mail 1 eve mail 2 eve mail 3

Eve Mercenaries

This is an ultra simple reference app. Looking for a Mercenary? Download this app and you’ll know who to talk to. Information is divided by space type (high sec, low sec, null and wh space).

While the app does contain some potentially useful information, it is very poorly designed. Readibility and formatting is well below acceptable level. There is not even an “About” screen, so I had to go back to Windows Store to find out who to blame. Sorry Team R Helix, I am no Windows Phone dev, but I can make a better looking app in under an hour.

eve mercenaries

Eve Mining Monitor

Now something well designed for a change (and quite useful, too). This is another reference app, this time for miners. It does exactly the same thing as LMeve Ore Chart: shows the ISK value per cubic meter of every ore and every ice in game. However, you have to make sure to update the prices before using the app, or the Ore chart will be inaccurate. Go to Settings and choose either Region or Trade Hub prices and then hit refresh. Good job, Vagus Malakhov!

emm 1 emm 2 emm 3

Eve Price

Another reference app, this time for market traders (but let’s face it, everyone needs a Jita price check now and then). There is two lookup modes:

  • Quick – simply enter item name and system – app will try to guess what you mean and will provide a quick  drop down list with most relevant choices
  • Search – enter item name, choose region (and optionally system)

What I find useful about this app is that you can save your favourite searches on the “Favorites” page – so there is no need to enter item and system names every time.

All price data comes from

wp_ss_20141118_0023 wp_ss_20141118_0020 wp_ss_20141118_0022 wp_ss_20141118_0019


First character tracker for Windows Phone in this test. It is very simple, but gets the job done.

  • “Details” page shows characater name and portrait, amount of ISK, character attributes and clone data. Note: no numer formatting on the ISK field. Can’t see if I have 3 billion ISK or three hundred million.
  • “Now Training” page shows information and progress bar for the skill currently in training. You can add a reminder when the skill is trained.
  • “Queue” page shows the current skill queue. Note: on the small screen of my Lumia, the font used for the skill list seems a little too big.
  • “Skills” page shows all the skills currently trained by the character.
  • “Certificates” page currently shows nothing (bug?)

wp_ss_20141118_0026 wp_ss_20141118_0027 wp_ss_20141118_0028 wp_ss_20141118_0025


Another character progress tracker. This one allows one more thing, compared to EVEision: it shows market transactions. Unfortunately (again) has problems with number formatting. While ISK amounts look fine, training times are shown in a weird format: D.H:mm:ss

It does however support Start Tiles (not Live Tiles though, but still, it’s better than no tiles support whatsoever). You can pin any of your characters to the start menu. Tapping the tile brings up EveLet showing this specific character. Neat!

  • Summary – shows corp, ship, ISK and SP amounts, Skill Queue and Market Transaction summary
  • Queue – shows current skill queue
  • Transactions – shows the list of last market transactions
  • Orders – shows the list of current market orders

wp_ss_20141118_0031 wp_ss_20141118_0029 wp_ss_20141118_0030


Yup, it’s the same EVEMON you know from the “big” Windows and it’s been developed by the same team of people.

Unfortunately… it does not work 🙁 After entring API key it complains about the format of the Characters.xml.aspx endpoint, so it probably requires some compatibility work. I will review it again when (and if) it is properly updated.

wp_ss_20141118_0036 wp_ss_20141118_0035 wp_ss_20141118_0034 wp_ss_20141118_0033 wp_ss_20141118_0032

EVE Profiler

One more character tracker. And I must say I’m impressed, because it is very well designed. It looks both like a native Windows Phone app (puts emphasis on fonts, font sizes and minimalistic design), and an EVE Online themed app. Menu slides in from the left and looks similar to NEOCOM strip in game. Very good design, Mr Jeremy Shore!

Regarding features it is rather limited when compared to the other character trackers. It offers the following:

Character Summary page: corporation, when joined, security status, active ship

Eve Mail page – a very neat mail reader

Skills page – I was unable to load all the skills Lukas has 🙁

Unfortunately it is less stable than the other apps and crashed to start menu a few times. Maybe it is just my budget Lumia. I hope Jeremy updates his app soon, because it looks really great.

wp_ss_20141118_0037 wp_ss_20141118_0038 wp_ss_20141118_0039 wp_ss_20141118_0040


Probably the best character tracker for Windows Phone so far, it is both stable, good looking and has quite some features. Don’t let that home brew icon fool you. After entering the API key, main menu is shown and it consist of:

  • pilot list
  • notifications
  • eve-news (several sources news reader, including eve news 24, tmc and official eve online feeds)

After choosing on of the characters, several pages worth of information are shown:

  • sheet – shows security status, currently piloted ship and location, ISK balance, SP amount, Clone grade, date of character creation and attributes
  • queue – shows skill queue
  • skills – displays currently trained skills. Note: it’s the only app that has skills grouped like in game
  • notifications – like name says

And it supports Live Tiles on the start menu! I really recommend this app. Good job, 3rd Rock Studios!

wp_ss_20141118_0046 wp_ss_20141118_0047 wp_ss_20141118_0048 wp_ss_20141118_0049 wp_ss_20141118_0050 wp_ss_20141118_0041 wp_ss_20141118_0042 wp_ss_20141118_0044 wp_ss_20141118_0045

Mili: Damage

Another ultra simple reference app. Remember when everyone had damage dealt/weakness for all factions in their bio? Well, this is it.

wp_ss_20141118_0052 wp_ss_20141118_0051

Ship Browser

This app is a ship database. It takes a while to load, but is packed with information, and can even display some of the ships in 3D. It looks very much like a show info window and contains the same st of information (ship stats, description, ship image). If you can’t live without spinning ships on the go, this app is for you.

wp_ss_20141118_0053 wp_ss_20141118_0054 wp_ss_20141118_0055

Evernus – third party market tracking app

I have recently stumbled upon a third party program, which in my opinion, deserves a spotlight.

Evernus is a market tracking app made for Windows, but it is open source and written in Qt, which means with a little effort it can be compiled for Linux and Mac as well (there’s actually a .dmg ready for download). This is something worth noting, because there is almost no EVE apps for Mac or Linux at the moment.

What does it do?

Evernus is basically a market/margin trading tracker application, so it is focused on prices comparison and buy/sell order tracking. It takes character skills into account when calculating profits and taxes, so it is pretty accurate. Of course to track orders and automatically update your character’s skills, you need to supply the app with your API key.

If your character doesn’t have all trade skills at level 5 yet, but you would like to experiment and see if training them to 5 is worth it, you can manually tune all relevant skill levels as well.

evernus-character-full1Of course Evernus shows pretty graphs, so at a glance you know if you’re making profit or not.

Don’t like graphs? Want exact values? You’re covered, simply view it as a table.

evernus-assets-full2 evernus-orders-full2Evernus can use price data from several sources. First, it’s your EVE client’s market exports. Secondly, it can scrape client cache (but please mind CCP considers it a breach of EULA, and Evernus shows a proper warning, if you try to enable this feature), or from internet. Lastly, you can also import your data from other apps such as EVE Mentat.

What’s also a very useful feature is in-game browser integration. Evernus can run a tiny web server on your PC, and you can access it directly from the inside of the EVE client, simply by opening in-game browser and pointing it to your own computer’s address, plus a port number which you set in options.


One more thing

Evernus is being actively developed by Pete Butcher, a member of polish EVE Online community. New features come out literally DAILY. Moreover, Pete contacted me, and LMeve integration is coming soon as well (Evernus will be able to access LMeve’s features like Industry Task tracking and item manufacturing costs).

All in all, if you’re a station trader, Evernus is a tool really worth looking into.

Crius API changes

industryAs per this dev blog by CCP FoxFour (@regnerBA), industry changes in Crius will also change the way Industry API works.

There will be no new endpoints, but old endpoints will be changed instead. This means old tools will no longer work unless their developers adapt them. But fear not, #devfleet has you covered!

Lockefox (@HLIBindustry) has published tools and sample API data to help other third party devs adapt their apps.

You can find his github repository here:

  • scripts which handle the new BPO data (to use on this file: <sisi client path>\bin\staticdata\blueprint.db from your Sisi client)
  • sample API outputs from the modified endpoints
    • corp/facilities.xml
    • char/industryJobs.xml
    • char/industryJobsHistory.xml

Great job Lockefox! It’s much appreciated!

PS. I will do my best to add these changes to LMeve before Crius deployment, but due to summer holiday season this might take a few days longer. Stay tuned!

What’s wrong with Industry in EVE?

The recent survey about industry by CCP Arrow has awakened hope in industry oriented players of EVE. Wait, does it mean something is wrong with the industry in EVE?

To answer this question we should first have a look…

Who is doing industry in EVE and why?

  • alts of PVP oriented characters
  • busy individuals who can’t stay logged in game for long

Industry (which is basically how crafting is referred to in EVE) caters to the needs of people who don’t want to (or can’t) spend a lot of time on EVE. Why? Because industry requires a brief period of activity, and then you are free to do something else. Install another Linux box, change diapers, shoot stuff on another character (* delete where inapplicable). It means industry is a rather passive activity. Should it be made more active? Should mining become a gang activity that requires 100% attention? Should industry be made more active like the hacking minigame was? Well, as long as it adds to the current system, rather than replaces it, I’m ok with it. But EVE requires different types of activities – it is great because you don’t always have to grind. Skillpoints are gained regardless if you’re logged in or not. There are activitites which require undivided attention, like PVP or Incursions. Or missioning/exploring low sec. There are those which require moderate attention – for example missioning in high sec. And there are activities that require low amounts of attention or none at all. Mining would be example of activity which doesn’t require much attention. Do you know why miners are so pissed with James 315 and his crusade to get rid of miners in high sec? Because ganks require miners to pay much more attention that they would otherwise have to. And there comes industry: most of production is done in the safety of a station, be it in high sec or low, or even null, not to mention PI which is as simple as “push button, wait x time, receive bacon”.

What’s wrong then? It seems industrialists are pretty happy with the state of affairs, no? They have their activities in EVE, that don’t force them to sit at the computer for hours on end. So, again: what’s wrong?

GUI is wrong. Well, maybe not in a strict sense wrong. It is wrong as in seriously outdated. It haven’t changed much over the years. Yes, it was iterated upon, for example when Reverse Engineering was introduced in Apocrypha, but it was rather adding a new record in an already existing database.

The core problem with industry in EVE is clickfest

Every industralist's favourite window
Every industralist’s favourite window

Most activities are highly repeatable. You have to login every x hours to start 10 invention and 10 manufacturing jobs. Starting up each job is 9 mouse clicks and 1 or 2 entries from keyboard.That gives 180 clicks just to set up one batch of invention and manufacturing jobs. It’s funny how CCP changed the first implementation of PI to reduce the amount of clicks. This is exactly what manufacturing, invention and copying needs: getting rid of the clickfest.

Possible solutions:

  • Introduce ability to start multiple jobs with just one set of clicks:
    • Choose an installation with free slots: Corp lab/assembly array or NPC factory
    • Set up parameters for a single run like you would right now
    • Choose to repeat the same job x times
    • As long as installation has free slots, there are correct number of blueprints and materials that meet the criteria, the job is inserted this many times
  • Make GUI remember past choices.
    • It already remembers if we used Corp or Public installations. Why can’t it remember the last invention/decryptor choice?
    • client should remember the choice for each blueprintTypeID
  • pick-installationChange the “Pick Installation” window to have installation list on the left, and production lines on the right, rather than one on top of the other.
    • In corporations with many installations (over 50)  the majority of time is spent on scrolling this list.  Why scrolling? Because the size of the installation list is fixed, and cannot be resized after reaching a certain height.
    • If the lists were displayed next to each other, the height limit would be the size of the window. This should make it possible to see either most or all available installations

Contribution tracking

Manufacturing and invention are very much like real ife work, so many corporations decide to pay their members for the work contributed towards corp goals. Unfortunately besides the API, game offers no GUI to track participation in the S&I program. Even if CCP wanted to introduce it in EVE it will be hard, because some corporations will choose to pay for the time character spent on manufacturing or invention jobs for corporation, promoting long jobs over short ones. Other corporations will choose to promote people who do a lot of clicking, paying for the amount of jobs installed, rather than for how long it took to complete them. There will also be those who would be willing to pay a share of the profit on specific item. As you can see, there is a multitude of options to choose from (which is bad for implementation).

timesheetSince there is no tools in game, Aideron Technologies has chosen to build our own tool (this is how LMeve was born). We have also chosen to pay for the amount of time, because if people run jobs for corp, they can’t run jobs for themselves.

What should CCP do?

  • Make a report available to corp Directors, which allows contribution tracking
  • The report should show (for each character)
    • How many jobs have been installed (per activityID)
    • How much time they took (per activityID)
    • How many products (t2 BPCs, items) have been produced

This would allow CEOs to pay their members for their chosen contribution metric. A contribution-to-isk calculator, that says how much corp owes their members would be perfect.

Progress Tracking

tasksCorp members can have many different production tasks assigned by corp. How would they know how many more Heavy Neutron Blasters they should build or invent? This is where progress tracking chimes in. Each character should have a small UI that shows their progress through the tasks that the Directors/Production Managers assigned to them. This way corp member “A” can invent exactly 100 BPCs, and corp member “B” can build exactly 100 modules, not to mention corp members “C” and “D”, who will make enough R.A.M.s and tech II parts to make said modules.


So the corp wants to make 200 Covert Ops Cloaking Devices II. This requires quite some effort:

  • 400 Tech I BPCs have to be copied
  • 200 Ishukone and 200 CreoDron R.Db.s have to be made to enable copying
  • 200 Tech II BPCs have to be invented
  • 50 Electronics R.A.M.s have to be made
  • Photon Microprocessors and Graviton Pulse generators have to be made (4000 and 3000 respectively)
  • Finally, 200 Tech II Covert Ops cloaks can be manufactured
  • of course Logisitcs have to provide all the materials, including PI, moon goo, minerals and datacores

kitsHow did I know how much work is required? Well, everything was in the Static Data Export, all I’ve done was connect and display that information. What should the GUI do in such case?

  • Insert a Copy task
  • Insert all intermediate Manufacturing tasks
  • Insert an Invention task
  • Insert a T2 Manufacturing task
  • Generate a shopping list for Logistic pilot

Of course some of the items above can be sourced from market instead of manufacturing them in-house. By the way, I’m pretty sure the ISIS interface would be great to visualize even the most complicated production process.

What’s wrong with Industry in EVE?

First, it’s a clickfest. It takes several mouse button presses to set up a single job. Secondly, game offers no tools to coordinate large scale S&I efforts. The GUI works good enough for a solo manufacturer, who uses either public or limited number of player owned installations, but is completely unprepared for corps which own hundreds of labs and run thousands of jobs each month. There are also no tools for planning or tracking S&I activities of a group.

The result: a multitude of third party tools to choose from

All the above results in players making third party tools which help with tracking and planning:

By the way. You know player-made killboards, right? Ever heard of War Reports feature in EVE? Guess which was first.

Mobile apps for EVE Online on iOS and Android


» For Windows Phone 8 apps, please go to this post «

This post is a synergy of my interests. If you are a returning visitor, you have most likely noticed that I write not only about EVE Online, but also about all things mobile: tablet PCs, mobile operating systems and so on.

Smartphones have changed the mobile phone market forever: almost half of all the mobile phones nowadays are smartphones. With CCP giving the community an API to access the in-game information, it was just a matter of time until first EVE related third-party apps have arrived.

Most of the Apps available for the two biggest smartphone platforms, namely Android and iOS, can be divided into three large groups:

  • character tracker
  • market tracker
  • industry helper

Majority of these third-party apps are free, but some of them use ads and donations to cover developer’s costs.

Unfortunately I neither own a Windows Phone 7 device, nor have a working emulator of it, so this review will not cover WP7 apps. Sorry!

It is also worth mentioning, that CCP has plans to deliver their own mobile applications for DUST 514 and EVE in the near future. Developers did not reveal any specifics besides Neocom app for DUST 514, which will run on PS Vita and will deliver almost full interaction with the game, except for the core FPS gameplay. Neocom for PS Vita is said to allow managing fittings, accessing market and so on.

Read more about CCP plans for mobile devices:

Since this post is rather long, please click “Continue reading” –>

Read more