Movatterモバイル変換


[0]ホーム

URL:


Sorry, we no longer support your browser
Please upgrade toMicrosoft Edge,Google Chrome, orFirefox. Learn more about ourbrowser support.
Skip to main content
Stack Overflow
  1. About
  2. For Teams
Loading…
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Code Challenge #4: Create a futuristic technology

Created
Active
Viewed 7k times
9 entries
32

Man climbing a mountain

Thanks for coming back for the fourth Stack Overflow code challenge, and welcome to those who are new. This challenge is three weeks long.

For more context on what this is and why we’re doing it, you can check outthis post on Stack Overflow Meta. If you have feedback on the challenge itself, that’s the place to send it!

The Challenge

Science fiction inspires us with visions of futuristic technologies like matter replicators, interplanetary tourism, mixed reality spaces and more. While some of these still seem like fantasy, others might be available in the near future.

In this challenge, we want to see if you can bring the future into the present. Can you create a futuristic technology? Or even a portion of it?

For example, you could focus on smart home technology. In the future, perhaps your home would automatically make food for you. In this challenge, you could create a food prediction software that would know what kind of food you’d like to eat.

As another example, creating an immersive 3D room experience (inspired by something like the Holodeck from Star Trek) might require a user interface to allow participants to choose an experience. How might that interaction work? What options would it provide, and how would their choices be reflected in a scenario’s creation?

Consider what role Artificial Intelligence might play in your tech. Perhaps it can help you with the challenge. This challenge is open-ended, and you can take any aspect of a future technology that appeals to you. Note: this should specifically be something that does not exist yet in the real world. You are encouraged to use your imagination and/or draw inspiration from books, films, and other sources.

It’s likely that these futuristic technologies would include a combination of hardware and software aspects. For the sake of this challenge, we want to focus on just the software portion, though you could make reference to any hardware inputs or outputs as needed.

How does the actual contest work?

You have three weeks from the date this challenge is posted to submit your entry. For the first two weeks, other entries are only visible once you have submitted your own. After that, anyone can view and vote on others’ entries.

July 1: Challenge goes live

July 15: All entries visible to everyone

July 21: Challenge ends

How to Submit:

Even though the theme of this challenge relates to the use of AI technologies,we still expect your entry to be written by you. AI assistance with coding or debugging is permitted if it is disclosed in your entry and the initial code is wholly your own. It is also valid to call AI-based services for specific aspects of the solution (for example to process natural language input or create an image based on specific parameters).

Your submission should include:

  • An explanation of your approach

  • The code you have produced to create the futuristic technology

  • Some sample usage patterns

  • AI usage disclosure

  • Instructions for how others can run your code to observe how it works

  • Anything you learned or any interesting challenges you faced while coding!

How do I win?

For this coding challenge, user entries with the most upvotes will be recognized, as well as users with entries deemed to be particularly interesting by staff members. Please note that any upvotes received as part of this challenge do not count towards site reputation.

9 entries

Oldest first —sorts entries by their creation dates, with the oldest at the top.

Newest first —sorts entries by their creation dates, with the newest at the top.

Latest activity —sorts entries with recent threaded replies or edits at the top.

Highest score —sorts entries by their total votes (highest first).

Your sorting method preferences will be saved.

Sorted by:
79687431
24

To leap up in space, open your Python console and run

import antigravity

Now, let's see if Perl lovers can match this...

Flying with Python

79687639
3

You are encouraged to use your imagination and/or draw inspiration from books, films, and other sources.

OK, you asked for it. Sometimes old technology is used to solve new problems. In the absence of a good definition and concrete examples (after all Google already knows what I want to eat, and VR goggles have been around for years), that's what we'll label "future technology."

With that in mind:

Futuristic IQ and Aptitude Test

This test is designed to test what your aptitude is good at, so you can get a job while you're being a particular individual (in jail or whatever).

In this speculated "future," the collective intelligence of humanity has dropped. Unfortunately, my future oracle only has given me a glimpse into one question, but one could easily add more. There will also be a shape-matching interface, but it doesn't really have to do anything. Or it can be used to start the exam computer up.

/*  This test is sponsored by Brawndo(TM), the Thirst Mutilator.*/const qPool = [  "If you have one bucket that holds two gallons and another bucket that holds five gallons, how many buckets do you have?",  // Other questions, if any];function say(s) {  textToSpeechApiCall(s);}function micPrompt(s) {  textToSpeechApiCall(s);  return transcribeMicInputApiCall();}for (const [i, q] of qPool.entries()) {  const resp = micPrompt(q);  evaluate({q: i, resp});  say("Thank you.");}say(getResult());

The test will of course be evaluated by a backend.

const answerKey = [  ["2", "two"],  // Next answers here, if any];let correctAnswers = 0;function evaluate(q, resp) {  if (answerKey[q].includes(resp))    correctAnswers++;}function getResult() {  if (correctAnswers / answerKey.length === 1) {    return "You got all the answers right! Possible genius. Recommend political office.";  }  // Other score tier results...}

It's all JS-based pseudocode. You could easily make it into a real thing, though.

Once the result is obtained, it will be sent to the Department of Labor for job assignment.

Citations

In the interest of avoiding plagiarism:

Idea based on movie Idiocracy. 1st paragraph above paraphrased from direct quote. Scene:https://www.youtube.com/watch?v=jbmq9P-8FiM

79694984
1

This script take your name and a year, andtakes you to that year, printing a list of celebrities from that decade, saying you've met them.

name = input("What is your name? ")year = int(input("Which year do you wish to visit? "))# Decade icons dictionaryvalues = {    tuple(range(1900, 1910)) : ["The Wright Brothers", "Henry Ford", "Marie Curie", "Mark Twain"],    tuple(range(1910, 1920)) : ["Charlie Chaplin", "Franz Kafka", "Tsar Nicholas II", "Mata Hari"],    tuple(range(1920, 1930)) : ["F. Scott Fitzgerald", "Josephine Baker", "Louis Armstrong", "Babe Ruth", "Coco Chanel"],    tuple(range(1930, 1940)) : ["Clark Gable", "Fred Astaire & Ginger Rogers", "Amelia Earhart", "Albert Einstein"],    tuple(range(1940, 1950)) : ["Frank Sinatra", "Winston Churchill", "Marilyn Monroe", "Audrey Hepburn", "George Orwell"],    tuple(range(1950, 1960)) : ["Elvis Presley", "James Dean", "Lucille Ball", "Jackie Robinson", "Marilyn Monroe"],    tuple(range(1960, 1970)) : ["The Beatles", "Muhammad Ali", "Andy Warhol", "John F. Kennedy", "Bob Dylan", "Che Guevara"],    tuple(range(1970, 1980)) : ["David Bowie", "Bruce Lee", "Stephen King", "Pele", "Meryl Streep", "Star Wars Cast"],    tuple(range(1980, 1990)) : ["Michael Jackson", "Madonna", "Arnold Schwarzenegger", "Prince", "Princess Diana", "Steven Spielberg"],    tuple(range(1990, 2000)) : ["Kurt Cobain", "Oprah Winfrey", "Will Smith", "Michael Jordan", "Britney Spears", "Keanu Reeves"],    tuple(range(2000, 2010)) : ["Beyoncé", "Angelina Jolie", "Cristiano Ronaldo", "Lionel Messi", "Eminem", "Barack Obama", "Harry Potter Franchise"],    tuple(range(2010, 2020)) : ["Taylor Swift", "Drake", "Kim Kardashian", "Elon Musk", "Greta Thunberg", "Game of Thrones Cast"],    tuple(range(2020, 2030)) : ["Zendaya", "BTS", "Timothée Chalamet", "Taylor Swift", "MrBeast", "Pedro Pascal"]}   found = Falsefor key in values:     if year in key:        icons = values[key]        print(f"Hello {name} let's take you to the year {year}")        for icon in icons:             print("You met", icon)        found = True         break if not found:     print(" The time Machine wasn't created for that time ")
79696480
9
  • 2.4k
  • 3
  • 18
  • 44

Programming languages tend not to die out. FORTRAN is still widely used in legacy systems. PHP is the foundation of the modern web. Newer languages may be gaining steam, but existing ones won't just disappear - the skills programmers gain in the languages of today will still be relevant in the tech stacks of tomorrow. As such, no matter how many technologies exist in the future, I can say with almost complete certainly that this program will be one of them:

C++

#include <iostream>int main() {    std::cout << "Hello World!";    return 0;}
79697048
13

🖥️My proposal: a holographic computer interface

I didn't use any AI to generate the code, not even code completions.

I wasn't sure about what did we have to do in this challenge. In previous challenges, we had to make a small script, but this time it looks like we have to do a whole project. So I made a simulator of a kind of holographic computer interface. My code uses 3D CSS features to simulate 3D holographic windows.

You can see the project in the link below. You can interact with some windows, for example, you can send messages to the different chats or draw in the painting app. You can move the windows by holding them by the top, like a normal computer.

Hope you like it.

https://iamarobot123.github.io/holo/

(The link redirects to my GitHub Page, but I just use It for this kind of projects.)

Anyway, thanks to the challenge, I learned a lot I didn't know about CSS transformations. I think I have to use 3D CSS tranformations more often for my personal projects. I really enjoyed this challenge.

Here is the full code:

HTML <index.html>

<!DOCTYPE html><html>    <head>        <meta charset="utf-8" />        <link href="styles/main.css" rel="stylesheet" />        <title>Holographic computer</title>    </head>    <body>        <div id="3ddisplay">            <img class="bgimagecube" src="images/cube1.jpg" id="left">            <img class="bgimagecube" src="images/cube3.jpg" id="front">            <img class="bgimagecube" src="images/cube2.jpg" id="right">            <img class="bgimagecube" src="images/cube4.jpg" id="back">            <div class="window">                <div class="main-bar">                    <div class="move-window">Settings</div>                    <div class="close-button">X</div>                </div>                <div class="content holo">                    <p>                             <span>Circle radius</span>                                       <input type="range" class="slider" id="radius-input" min="700" max="1300" value="800">                    </p>                    <p>                             <span>Opacity</span>                                       <input type="range" class="slider" id="opacity-input" min="0.3" max="0.95" value="0.8" step="0.025">                    </p>                    <p>                             <span><b style="color: #ff0060">Warning:</b> A higher oppacity may affect the energy spent by the holographic projector.</span>                                   </p>                    <p>                             <span>Hold the wheel button or click the movement buttons to move to the sides</span>                                   </p>                     </div>            </div>            <div class="window">                <div class="main-bar">                    <div class="move-window">Messages</div>                    <div class="close-button">X</div>                </div>                <div class="content messages">                    <div class="chats">                        <div class="chat">                            <div class="chat-profile-photo" style="background-color: #ff3030">                            </div>                            <div class="chat-name">                                Chat 1                            </div>                        </div>                        <div class="chat">                            <div class="chat-profile-photo" style="background-color: #30ff30">                            </div>                            <div class="chat-name">                                Chat 2                            </div>                        </div>                        <div class="chat">                            <div class="chat-profile-photo" style="background-color: #00bfff">                            </div>                            <div class="chat-name">                                Chat 3                            </div>                        </div>                    </div>                    <div id="chat-display">                        <div id="chat-output">                        </div>                        <div id="chat-bar">                            <input type="text" id="chat-input">                            <button id="chat-send">Send</button>                        </div>                    </div>                </div>            </div>            <div class="window">                <div class="main-bar">                    <div class="move-window">Notes</div>                    <div class="close-button">X</div>                </div>                <div class="content notes">                    <textarea id="notes-display">Taking notes here</textarea>                    <div class="notes-button-container">                        <button id="notes-save">Save</button>                        <button id="notes-reset">Reset</button>                        <input id="notes-filename" type="text" value="Notes" placeholder="filename"><span>.txt</span>                    </div>                </div>            </div>            <div class="window">                <div class="main-bar">                    <div class="move-window">Paint</div>                    <div class="close-button">X</div>                </div>                <div class="content paint">                    <canvas id="paint-display">Something went wrong</canvas>                    <div class="paint-button-container">                        <button id="paint-save">Save</button>                        <button id="paint-reset">Reset</button>                        <input id="paint-filename" type="text" value="Painting" placeholder="filename"><span>.png</span>                    </div>                </div>            </div>        </div>        <div class="move-button left">            &LeftArrow;        </div>        <div class="move-button right">            &RightArrow;        </div>        <script src="scripts/main.js"></script>    </body></html>

CSS <styles/main.css>

.bgimagecube {    background-color: #908070;    width: 1000px;    height: 1000px;    margin: 0;    padding: 0;    position: absolute;    grid-template-rows: 20px calc(100% - 20px);}.window {    background-color: #a0c0ff;    background-image: repeating-linear-gradient(#90b0ff 5px, #c0c0ff 10px);    opacity: 0.8;    border-radius: 8px;    position: absolute;    resize: both;    overflow: auto;    display: grid;    width: 700px;    height: 500px;    margin: 0;    padding: 0;    grid-template-rows: 20px calc(100% - 20px);}body {    margin: 0px;    height: 100svh;    width: 100svw;    overflow: hidden;}.main-bar {    display: grid;    background-image: repeating-linear-gradient(#6090ff 5px, #80a0ff 10px);    grid-template-columns: calc(100% - 20px) 20px;    margin: 0;    padding: 0;    cursor: grab;}.move-window {    color: #ffffff;    font-family: "Fira Sans", Arial, Helvetica, sans-serif;    padding: 3px 7px;    height: 14px;}.close-button {    background-color: #ff0030;    opacity: 0.8;    color: #ffffff;    font-family: "Fira Sans", Arial, Helvetica, sans-serif;    font-size: 11pt;    display: grid;    padding: 3px 5px;    height: 14px;}.holo {    padding: 8px;}p {    margin-top: 0;}.slider {    margin: 0;    display: inline;    text-align: center;    position: relative;    top: 4px;    cursor: pointer;}span {    font-family: "Fira Sans", Arial, Helvetica, sans-serif;    color: #ffffff;    font-size: 11pt;}.messages {    display: grid;    grid-template-columns: 150px calc(100% - 150px)}.chats {    display: grid;    background-image: repeating-linear-gradient(#6090ff 5px, #80a0ff 10px);    grid-template-rows: 60px 60px 60px;}.chat {    display: grid;    grid-template-columns: 50px 100px;    background-color: #8090ff;    border-width: 0;    border-bottom: 1px;    border-style: solid;    border-color: #a0c0ff;    cursor: pointer;}.chat-profile-photo {    margin: 15px 10px;    border-radius: 100%;}.chat-name {    margin-top: 20px;    color: #ffffff;    font-family: "Fira Sans", Arial, Helvetica, sans-serif;}#chat-display {    display: grid;    grid-template-rows: calc(100% - 30px) 30px;}#chat-bar {    display: grid;    background-image: repeating-linear-gradient(#6090ff 5px, #80a0ff 10px);    grid-template-columns: calc(100% - 60px) 60px;}#chat-input, #notes-filename, #paint-filename {    margin: 5px;    background-color: #a0c0ff;    border-style: solid;    border-width: 1px;    border-radius: 5px;    border-color: #808080;}#chat-send, #notes-save, #notes-reset, #paint-save, #paint-reset {    margin: 5px;    background-color: #a0c0ff;    border-style: solid;    border-width: 1px;    border-radius: 5px;    border-color: #808080;    color: #404040;}#chat-send:hover, #notes-save:hover, #notes-reset:hover, #paint-save:hover, #paint-reset:hover {    background-color: #c0c0ff;    cursor: pointer;}.chat-header {    color: #ffffff;    font-family: "Fira Sans", Arial, Helvetica, sans-serif;    padding: 5px;    background-color: #90b0ff;}.msg1 {    color: #ffffff;    font-family: "Fira Sans", Arial, Helvetica, sans-serif;    padding: 5px;    margin: 5px;    font-size: 11pt;    width: fit-content;    background-color: #6080ff;    border-radius: 5px;}.msg2 {    color: #ffffff;    font-family: "Fira Sans", Arial, Helvetica, sans-serif;    padding: 5px;    margin: 5px;    margin-left: auto;    font-size: 11pt;    width: fit-content;    background-color: #90a0ff;    border-radius: 5px;}#notes-display {    width: calc(100% - 16px);    height: calc(100% - 16px);    border-width: 0;    margin: 8px;    padding: 0;    display: grid;    resize: none;    background-color: #0000;}.notes-button-container, .paint-button-container {    background-image: repeating-linear-gradient(#6090ff 5px, #80a0ff 10px);}.notes, .paint {    margin: 0;    padding: 0;    display: grid;    grid-template-rows: calc(100% - 30px) 30px;}#paint-display {    width: calc(100% - 16px);    height: calc(100% - 16px);    border-width: 0;    border-radius: 8px;    margin: 8px;    padding: 0;    display: grid;    resize: none;    background-color: #e0e0ff;}.move-button {    position: absolute;    width: 50px;    background-color: #80808080;    border-radius: 8px;    text-align: center;    text-wrap: center;    font-family: Arial, Helvetica, sans-serif;    font-weight: bolder;    font-size: 18px;    margin-top: 5px;    padding-top: 5px;    padding-bottom: 7px;    cursor: pointer;}.right {    margin-left: calc(100% - 55px);}.left {    margin-left: 5px;}

JavaScript <scripts/main.js>

const windows = [ ...document.getElementsByClassName('window')];const background = [ ...document.getElementsByClassName('bgimagecube')];const moveButtons = [ ...document.getElementsByClassName('move-button')];const radiusInput = document.getElementById('radius-input');const opacityInput = document.getElementById('opacity-input');let windowTransform = [    { direction: 0, height: 0, vh: 300, vw: 500 },    { direction: 50, height: 0, vh: 300, vw: 500  },    { direction: 100, height: 0, vh: 300, vw: 500  },    { direction: 310, height: 0, vh: 300, vw: 500  },]const deg = (n) => n / 180 * Math.PI;let c = 500;let r = 0;let o = 0;let wheelPressed = false;document.addEventListener('mousemove', (e) => {    if(wheelPressed)    r -= e.movementX / 5;})document.addEventListener('mousedown', (e) => {    if(e.button == 1) {        wheelPressed = true;        e.preventDefault();    }})document.addEventListener('mouseup', (e) => {    if(e.button == 1) {        wheelPressed = false;        e.preventDefault();    }})for(const n in moveButtons) {    const assign = [-10, 10];    moveButtons[n].onclick = () => r += assign[n];}const notesSave = document.getElementById('notes-save');const notesReset = document.getElementById('notes-reset');const notesInput = document.getElementById('notes-display');const notesFileName = document.getElementById('notes-filename');notesSave.onclick = () => {    const element = document.createElement('a');    element.setAttribute('href', 'data:txt;charset=utf8,' + encodeURIComponent(notesInput.value));    element.setAttribute('download', notesFileName.value);    element.click();}notesReset.onclick = () => {    notesInput.value = '';}const paintSave = document.getElementById('paint-save');const paintReset = document.getElementById('paint-reset');const paintInput = document.getElementById('paint-display');const ctx = paintInput.getContext('2d');const paintFileName = document.getElementById('paint-filename');paintSave.onclick = () => {    const element = document.createElement('a');    element.setAttribute('href', paintInput.toDataURL('png'));    element.setAttribute('download', paintFileName.value);    element.click();}paintReset.onclick = () => {    paintInput.height = paintInput.clientHeight;    paintInput.width = paintInput.clientWidth;    ctx.reset();    ctx.fillStyle = '#e0e0ff';    ctx.fillRect(0, 0, paintInput.width, paintInput.height);}paintInput.height = paintInput.clientHeight;paintInput.width = paintInput.clientWidth;ctx.fillStyle = '#e0e0ff';ctx.fillRect(0, 0, paintInput.width, paintInput.height);let pencilDown = false;let pencilX = 0, pencilY = 0;let pencilBX = 0, pencilBY = 0;paintInput.addEventListener('mousedown', (e) => {    if(e.button == 0)    {        pencilDown = true;        pencilBX = e.offsetX;        pencilBY = e.offsetY;    }})document.addEventListener('mouseup', (e) => {    if(e.button == 0) pencilDown = false;})paintInput.addEventListener('mousemove', (e) => {    pencilX = e.offsetX;    pencilY = e.offsetY;})const chats = [ ...document.getElementsByClassName('chat')];const display = document.getElementById('chat-output');const input = document.getElementById('chat-input');const send = document.getElementById('chat-send');let selected = 0;const dialogues = [    `    <p class="chat-header">Chat 1</p>    <p class="msg1">Hello</p>    `,    `    <p class="chat-header">Chat 2</p>    <p class="msg1">Hi! How's it going?</p>    <p class="msg2">I'm too busy right now. Let's talk later</p>    <p class="msg1">Ok</p>     `,    `    <p class="chat-header">Chat 3</P>    <p class="msg1">Do you have a moment?</p>    <p class="msg1">I've to tell you something important</p>    <p class="msg2">I don't have time</p>    <p class="msg1">Ok, let's talk later</p>    `,]for(const n in chats) {    chats[n].addEventListener('click', (e) => {        selected = n;            })}send.onclick = (e) => {    if(!input.value) return;    dialogues[selected] += '<p class="msg2">' + input.value + '</p>';    input.value = '';}input.onkeydown = (e) => {    if(e.key != 'Enter') return;    if(!input.value) return;    dialogues[selected] += '<p class="msg2">' + input.value + '</p>';    input.value = '';}const mainBars = [ ...document.getElementsByClassName('main-bar')];for(const n in mainBars) {    let selected = false;    mainBars[n].addEventListener('mousedown', (e) => {        if(e.button == 0) selected = true;    })    document.addEventListener('mouseup', (e) => {        if(e.button == 0) selected = false;    })    document.addEventListener('mousemove', (e) => {        if(selected) {            windowTransform[n].direction -= e.movementX / 7;            windowTransform[n].height += e.movementY;        }    })}function loop(frame) {    if(pencilDown) {        ctx.beginPath();        ctx.moveTo(pencilBX, pencilBY);        ctx.lineTo(pencilX, pencilY);        ctx.lineWidth = 2;        ctx.strokeStyle = '#404040';        ctx.stroke();        ctx.closePath();        pencilBX = pencilX;        pencilBY = pencilY;    }    if(paintInput.clientHeight != paintInput.height || paintInput.clientWidth != paintInput.width) {    {        paintInput.height = paintInput.clientHeight;        paintInput.width = paintInput.clientWidth;        ctx.fillStyle = '#e0e0ff';        ctx.fillRect(0, 0, paintInput.width, paintInput.height);    }    }    for(const n in background) {        // The background is a cubemap I downloaded from the Internet.        background[n].style.transform =         `        translate(${window.innerWidth / 2 - 500}px, ${window.innerHeight / 2 - 500}px)        perspective(1000px)        translate3d(${-Math.sin(deg(r + n * 90)) * 500}px, ${0}px, ${-Math.cos(deg(r + n * 90)) * 500 + 1000}px)        rotate3d(0, 1, 0, ${r + n * 90}deg)        `    }    c = radiusInput.value;    o = opacityInput.value;       for(const n in windows) {        // Apply 3D CSS transformations        windows[n].style.transform = ''        windowTransform[n].vw = windows[n].clientWidth;        windowTransform[n].vh = windows[n].clientHeight;        windows[n].style.transform =         `        translate(${window.innerWidth / 2 - windowTransform[n].vw / 2}px, ${window.innerHeight / 2 - windowTransform[n].vh / 2}px)        perspective(1000px)        translate3d(${-Math.sin(deg(windowTransform[n].direction + r)) * c}px, ${windowTransform[n].height}px, ${-Math.cos(deg(windowTransform[n].direction + r)) * c + 1000}px)        rotate3d(0, 1, 0, ${windowTransform[n].direction + r}deg)        `        // Apply opacity        windows[n].style.opacity = `${+o + Math.random() / 30}`    }    display.innerHTML = dialogues[selected];    requestAnimationFrame(loop);}loop(0);

Thanks for reading. Hope you liked the idea!

79701204
1

I'm conflicted. On one hand, it's a really cool demo of CSS capabilities, but on the other, I'm not sure this is actually "futuristic" within the parameters of the challenge. I mean, I know hologram projectors aren't a thing yet, but that's not what's being made here either.

79702104
0
  • A slider for window opacity would be worthwhile to increase the immersion of the reality augmentation of your demo.

  • Some amount of tech that implements this kind of feature set is already in place in augmented reality glasses that are in the market. Not as polished as your demo, but stuck because of regulatory and privacy issues, instead of technical roadblocks.

79703290
1

Thanks for the idea. I just didn't know about the newest AR/VR software, I took inspiration from some sci-fi books.

79704171
0

"Holodeck-like" experience using VR and harness.

Well the case about Holodeck actually comes close to something I wanted to do.

I don't have any code, but I do have a list of hardware required and it is inspired by a ski simulator I tried several years ago in Oslo, Norway at their ski jump place.

It basically hinges on it is possible to manipulate with your senses, so it may feel like you are jumping / falling large distances, but in reality you are only moving a few feet in any directions.

What the ski simulator did in order to make us believe we were skiing downhill at high speeds is because there were hydraulic legs underneath the simulator and it blew wind in our faces in order to sell that we were going down a slope fast and sometime with little contact with the ground by tilting slightly from side to side.

For the immersion to be effective you need to be harnessed in, as the solution will give you free mobility in 3D space (including vertical) and the harness is used to manipulate the senses along with VR glasses and ofc safety, so you don't slam into the floor or walls.

You will probably also need to wear a special suit, so a set of cameras can keep track on how you are oriented and being able to track where your feets, hands and head are as it affects what you are going to see in the googles and ofc the haptic feedback I need to provide.

Like for instance how to simulate climbing on the side of a mountain or balancing on a ledge at a great height in a safe way.

Here I want the computer to track my movements, so when I move in a specific direction (for instance climbing) then a robot arm or the like will provide me with something I can grab a hold at the place I place my hand on and when I climb up, it will slowly lower me back to start position, but in a way that you will not notice it.

And in the case of falling can be done by being hoisted slowly, but a wind machine blows air in you direction so it feels like you are falling and picking up vertical speed.

Ideally that means you can explore large areas without actually moving anywhere and if it is done right, it also means you will not get motion sickness because your inner ear is not disagreeing with what you can see.

79705451
0
  • 31.5k
  • 12
  • 73
  • 110

Where is the implementation? Please note that this is Code Challenges and we need to see your idea materialized to an extent. The bar is pretty low, but nonetheless it is there. I won't delete this for now, but please edit.

79704310
2

A C++2238 Undefined behaviour detector.

This tool takes in a c++ project directory, analyzes it and spits out a result whether your code contains undefined behaviour, unfortunately, it needs a y256 comformant architecture to be run.

#include <std33_filesystem> // supply the STL version you want to use#include <std33_compile> // in the future, you can generate code at runtime#include <std77_entry> // the future does not care about ABI, you can use any STL version you want#include <std77_cyber> // for cyberspace memory allocation//             v-------- In C++1037, async attribute was introduced//                      v------- In C++2033, the implicit_status attribute lets you define an enum that is automatically converted to std::program_status, where 0 is still success[[nodiscard, async, implicit_status(std::undefined_behaviour_result) ]]std::undefined_behaviour_result check_ub(std::cpp_standard standard); // in 2238, we still need to forward declare.std::program_status main(std::v77::argument_list argv) { // C++2077 conformant entry point   std::v33::file_list cpp_source_files = std::v33::get_cpp_project(argv[0]);   std::v77::cyber_vector link_files {愛} // tell the cyberspace - of japanese origin - to treat your files with love   for(auto&&& f : cpp_source_files) // cyber reference, the memory is not on your machine, it goes hand-in-hand with <std77_cyber>   {      for(auto&&& parse_result : std::v33::compiler::parse(f)) { // c++77 introduced multi pass parsing and ditched object file generation, the AST is directly used to generate the final cyber-binary         link_files.push_back(parse_result);      }   }   //check for undefined behaviour now   return await check_ub(std::cpp_standard::idc); // implicit conversion takes care of the program result.}std::undefined_behaviour_result check_ub(std::cpp_standard standard) { // checks a project for undefined behaviour   return std::undefined_behaviour_result::undefined_behaviour;}
79705372
1

my future tech:

from datetime import datetime as datetimewhile True:  print(datetime.today().strftime('%Y-%m-%d %H:%M:%S'))
79707719
0

A basic Python script that takes text input like "make pasta" and prints out cooking steps, basically simulating aholographic chef.

import randomdef process_voice_command(command):    if "make pasta" in command.lower():        return "pasta"    elif "make salad" in command.lower():        return "salad"    else:        return Nonerecipes = {    "pasta": [        "Step 1: Boil water and add pasta.",        "Step 2: While pasta cooks, saute garlic and tomatoes.",        "Step 3: Mix the sauce with the cooked pasta.",        "Step 4: Serve and enjoy!"    ],    "salad": [        "Step 1: Wash and cut your greens.",        "Step 2: Add other vegetables like cucumber and bell peppers.",        "Step 3: Drizzle with your favorite dressing.",        "Step 4: Toss and serve."    ]}def holographic_chef():    print("Welcome to your futuristic kitchen! I'm your Holographic Chef.")    print("What would you like to cook? (e.g., 'Make pasta')")        user_input = input("You: ")        dish = process_voice_command(user_input)        if dish in recipes:        print(f"\nOkay, projecting the recipe for {dish}...")        for step in recipes[dish]:            print(f"Holographic Chef: {step}")    else:        print("\nI'm sorry, I don't have that recipe yet. Please try another one.")if __name__ == "__main__":    holographic_chef()
Challenge guidelines
Enter the challenge and share!
Use challenges to gain new skills and engage with the community to share your take on the answer! Keep your entries on topic for the best chance to win.
Upvote the best answer
Cast your upvote for the best answer!
See all entries once the voting period starts. Or, submit your own now for an early comparison.
Be welcoming and patient
We expect all users to treat one another with kindness and respect. Remember, everyone is here to learn, and sometimes while learning, people make mistakes. Seecode of conduct.
No resume or job listings
Challenges are not for sharing your resume or job listing.
No overt self-promotion
If your post happens to be about your product or website, you must disclose your affiliation.See spam guidelines and best practices.

[8]ページ先頭

©2009-2025 Movatter.jp