Javascript reactor planner(EXTREME WIP)

  • Hey everyone,


    I tried the reactor planner app, and a lot of it's algorithms seemed wrong(my markII-6 modeled as a markII-1), so I decided to make my own. It's javascript based, so no download, though I recommend a browser with a good javascript engine(mostly any latest version browser). It has Uranium cells, cooling cells, plates, and IHDs. Very simplistic UI, can only do a single tick or complete the cycle, and need to refresh to reset. I am planning on adding reactor stats and better controls, as well as server based saving/loading, so stay tuned.


    Here's the planner


    The good news about it is that the modelling seems rather faithful to the ingame reactors, as my markII-6 models just right, with no overheating c-cells.


    Feedback is appreciated.

  • May be something is wrong. This one shouldn't build up heat. The edge cells in the second row even doesn't have a lifebar while reactor is running. But this app ssows that it is constantly heating up.
    http://test.vendaria.net/index…CXXXXXXXXXXXXXXXXXXXXXXXX

    Cutiemark crusaders - engineers, Yay!
    Blown up: Industrial Blast Furnace, Industrial Wiremill, Singularity compressor, Extractor.

  • Oh yes, it works now ^__^ It should have a neutral heat balance, and it looks like it has.

    Cutiemark crusaders - engineers, Yay!
    Blown up: Industrial Blast Furnace, Industrial Wiremill, Singularity compressor, Extractor.

  • neat ap, especially for someone still trying to figure out reactors.


    theres a few nuclear related things missing, but the most important is actually a way to remove items that where mis placed.

  • I guess i better clarify that. Right clicking should(on most browsers) clear a cell.


    Breeding systems added(isotope and re-enriched cells).

  • Would be nice if you added a break for the cycle process...


    Good app though! Was really bothered by the faults of the other one :)

  • is there a way to accelerate the cycles? I'm curious how long it some of my designs will take to accumulate a certain amount of heat. The other reactor planner has one of my designs going for 16minutes before it loses a coolant cell. just want to double check it..


    I'm a noob to designs, so just trying to get a handle on how the plates and cells interact. I'm trying to figure it out on my own so have yet to really look at others designs.

  • Can't really make it go any faster, it tries to do 100 'ticks' per second, but it's limited by your browser. Still manages about 20~30 times minecraft speed(on my system, in chrome), which means a full cycle in about 8~9 minutes.


    Bear in mind that the only other reactor planner available has some serious flaws in it's simulation, and has one of my MarkI's blowing up partway into the first cycle. It doesn't do that in minecraft, or in my app, and my app does a much more realistic simulation of other reactors, f.e. Kuu's MarkI earlier in this thread does model as a MarkI in it, but has wildly flickering temp on 2 of the cells that don't actually heat up in minecraft or my app.


    I am going to work on a compiled language version of mine, so that would solve speed issues, but it's not very high priority for me.

  • ah yeah, I just put the two exact same designs in both and yours It says I didn't have to worry about the coolant cells going red for a while were on the other they got angry at me..


    I like the app quite a bit. I'm not good at designing yet.. I'm still a bit fuzzy on some of the specifics. I read Albaka's guide so I have a basic idea. I really don't want to do trial and error quite yet. So this app let's me do that and not nuke my world.

  • LIttle curious if you would care to have a downloadable version. Of course if you're not willing, that's fine. It's just that maybe being run straight from a person's computer would get around the browser speed limitation and go up to that 100ticks/sec you said you got it to be trying to attain.

  • JS works directly on the client machine. It doesn't matter where you're loading it from.



    A little request: would you please add an input to change hull/element accumulated heat values?
    And the amount of cooling blocks around the reactor.

  • Vendan said something about the program being limited by the browser being used. So, I'm thinking that if I was able to run it from my computer without using any web browser in the way, it'd go the fastest (that 100 ticks/sec mentioned). My browser is limiting the program, and the browser is being limited by my internet most of the time. Thus, my internet connection is limiting the program. Or so I am thinking. But the only code I know even halfway decently is C++, not Java.

  • >Thus, my internet connection is limiting the program


    Wrong.
    The program is not using your internet connection. Well, only to load itself (6 images, one .js and one .html, 37kb and 8 requests total, completed in less than a second).


    All calculations are running on your PC inside a browser.

  • Well then something in my browser is heavily limiting the speed. And has only been doing so for about a week. I'm willing to guess the hundreds of Java updates that seemingly come in every day or so...


    Edit: Did some small testing and found that before running the program, my Firefox.exe was running about 44000K (40000K before having the window open at all). After starting a reactor test, this jumped to a max around 96000K. Stopping the reactor test only reduced the memory to 88000K. Closing said window only has reduced memory down to 52000K. So somewhere down the line of the program, I've lost 12000K in memory. At least, until I close Firefox entirely.

  • This "something" is called a JS engine.


    Use google chrome to get a performance boost. I'd say chrome works at 170% of firefox speed in this particular app.
    Other than than - nothing you can do without rewriting this app using something faster than javascript.

  • Vendan do you think you could replace your on click function for the cycle button with the following so that we can stop it mid cycle?


    if(is_running){
    clearInterval(runningint);
    is_running = false;
    }else{
    cycle_reactor();
    }