infinite-elevator

(Almost) Infinite Elevator

Polish

(Almost) Infinite Elevator jest będącą w trakcie przygotowania aplikacją-zabawką internetową dla wielu graczy symulującą pracę 16 wind w wieżowcu wysokim na 65 535 pięter (nie licząc parteru).

Aplikacja stanowi zarazem demonstrację jednego z możliwych algorytmów pozwalających na (w miarę) wydajne przemieszczanie się wind w budynku.

Wprowadzenie

W miastowcu I (czyt. $i$) - pierwszym z najnowszej generacji wieżowców-miast, liczącym sobie 65 535 pięter oraz parter (piętro 0) znajduje się rząd szesnastu Bardzo Pojemnych™ wind przywoływalnych na każdym piętrze za pomocą wspólnego dla nich panelu.

Wspólny panel posiada dwa pojemnościowo-dotykowe, wykrywające bezbłędnie palce przyciski: pierwszy, zajmujący cały sufit, wyraża chęć jazdy w górę, drugi, tak szeroki jak podłoga - w dół. Z oczywistymi wyjątkami:

Każda winda posiada pole do wprowadzania piętra, na które chce się udać jej użytkownik. Pole jest wykonane w technologii hologramu indywidualnego - wyświetla się z osobna dla każdej osoby, która wejdzie do windy. Osoba ta wpisuje w pole numer piętra, na które chce się udać, i zatwierdza klawiszem Enter. Na każdym przystanku ma też możliwość wyjścia z windy - wówczas winda automatycznie usuwa dokonany przez nią wybór piętra.

Windy wykorzystują wspólny dla nich, zbudowany redundantnie potężny silnik krokowy (jeden krok - 64 piętra), do którego każda posiada podłączoną własną wysoce złożoną przekładnię. Dzięki takiemu rozwiązaniu windy poruszają się z prędkością 64 pięter na sekundę, osiągalną w pomijalnie krótkim czasie. Chociaż jednak winda może przerwać ruch w każdej chwili, a więc zatrzymać się na dowolnym piętrze, to opisana budowa oznacza, że rozpocząć ruch może ona tylko raz na sekundę (krok), w momencie zsynchronizowania silnika i przekładni.

Wspaniały algorytm przemieszczania wind

Bo bez wspaniałego algorytmu to bym chyba wybrał schody. Szczerze mówiąc, nawet z algorytmem mieszkańcy często narzekają! Ale wystarczy im przypomnieć komunikację miejską… W każdym razie:

Możliwe usprawnienia

Opis wykonania i instalacji

Na aplikację składają się:

Licencja

MIT. Poza zawartościami katalogu ext - są one rządzone swoimi własnymi licencjami.

English

(Almost) Infinite Elevator is a work-in-progress multiplayer toy web application that simulates the operation of 16 elevators in a skyscraper 65,535 floors high (plus the ground floor).

The application simultaneously serves as a demonstration of one of the possible algorithms that allow for the (somewhat) efficient movement of elevators in a building.

Introduction

In the cityscraper I (pronounced $e$) - the first in the latest generation of skyscraper cities, featuring 65,535 floors plus a ground floor (floor 0), there is a row of sixteen Very Capacious™ elevators that may be called onto each floor using a shared panel.

The shared panel has two impeccably finger-sensing touch-capacitive buttons: the first one, filling the whole ceiling, expresses the desire to go up, the second, as wide as the floor - down. With obvious exceptions:

Each elevator has a number input field for entering the floor to which its user wants to go. The field is made with the use of the individual hologram technology - it is displayed individually for each person who enters the elevator. The person enters into the field the number of the floor to which they want to go, and confirms with the Enter key. At each stop, they also have an option of leaving the elevator - then the elevator automatically cancels their floor selection.

The elevators use a common, redundantly built mighty stepper motor (one step - 64 floors), to which each elevator has a highly complex gearshift of its own connected. Thanks to this solution, the elevators move at a speed of 64 floors per second, achievable in a negligible time. However, although an elevator may stop moving at any time, i.e. stop at any floor, the described construction means that it can start moving only once per second (step), when the engine and the gearshift are synchronized.

The great elevator movement algorithm

Because without a great algorithm I would probably have chosen the stairs. Honestly, even with the algorithm residents often complain! But all we have to do is remind them how public transport was… Anyway:

Possible improvements

That’s why everything stays the way it is. And the system is easily applied to ordinary, 21st-century elevators. If it weren’t for the identification of people inside - but a close enough approximation is simply to allow floors to be unchecked…

How it’s made and how to install it

The application consists of:

License

MIT. Except the contents of the ext directory - they are governed by their respective licenses.