To call canisters outside of your project you’ll need to create an actor instance that has a signature matching the interface of the canister method you’re calling, for a simple Motoko example see here: How to use "cowsay" project in my project? - #2 by Ori
To call canisters from other devices, you can use an agent library for the language you’re writing the application in, eg the rust agent library here: https://github.com/dfinity/agent-rs/tree/main/ic-agent
With either of these approaches you can call any deployed canister, no matter the project that built it or language used to write it. All you need to know is its canister id and interface description/signature. For mainnet deployed canisters you can find these on sites like Canlista (eg Canlista - reversi-game - iabks-raaaa-aaaab-aaafq-cai) or ic-rocks (https://ic.rocks)